/* Проверка (checker) за задачата.
   Аргументи: 1) входен файл, 2) верен изход, 3) изход на грейдъра-посредник.
   Чете "OK <най-голямо h>" или "ERR <причина>" и превръща h в точки. На стандартния
   изход се извежда число в [0,1], а на стандартния изход за грешки -- съобщение. */
#include <bits/stdc++.h>
using namespace std;
static void verdict(double points, const string& message){
    cout << points << "\n";
    cerr << message << "\n";
    exit(0);
}
int main(int argc, char** argv){
    if (argc < 4) verdict(0, "Невалиден изход");
    ifstream out(argv[3]); string tag;
    if (!out.is_open() || !(out >> tag)) verdict(0, "Невалиден изход");
    if (tag != "OK") verdict(0, "Грешен отговор");
    long long h;
    if (!(out >> h)) verdict(0, "Невалиден изход");
    double s = 0;
    if      (h <= 12) s = 1.00;
    else if (h == 13) s = 0.75;
    else if (h == 14) s = 0.60;
    else if (h == 15) s = 0.50;
    else if (h == 16) s = 0.42;
    else if (h == 17) s = 0.37;
    else if (h == 18) s = 0.33;
    else if (h == 19) s = 0.30;
    else if (h == 20) s = 0.27;
    else              s = 0.00;
    verdict(s, s >= 1.0 ? "OK" : (s > 0.0 ? "Частичен резултат" : "Грешен отговор"));
}
