Submission #1238475

#TimeUsernameProblemLanguageResultExecution timeMemory
1238475ema_nicoleHotter Colder (IOI10_hottercolder)C++17
0 / 100
442 ms96312 KiB
#include <iostream>
#include "grader.h"

using namespace std;

int HC(int n) {
    if(n == 1)
        return 1;
    if(n == 2) {
        Guess(1);
        int tip = Guess(2);
        if(tip == 1) ///hotter
            return 2;
        return 1;
    }

    Guess(1);
    int st = 1, dr = n;
    int tip = Guess(n), test = 2;
    if(tip == 0)
        return (n + 1) / 2;
    else if(tip == -1) { ///mai mic --> schimbam cu ceva ok
        dr = (n + 1) / 2;
        Guess(dr); ///updatam sa fie ok
    }

    while(st < dr) { ///???
        int mid = (st + dr) / 2;
        tip = Guess(mid);
        if(test == 1) { ///st e nou
            if(tip == 0)
                return (mid - st) / 2;
            else if(tip == -1) { ///st e mai dep ca dreapta
                dr = mid - 1;
                Guess(st);
                test = 1;
            }
            else { ///st e mai aproape
                dr = mid;
                test = 2;
            }
        }
        else { ///dr e nou
            if(tip == 0)
                return (dr - mid) / 2;
            else if(tip == -1) { ///cold
                st = mid + 1;
                Guess(dr);
                test = 2;
            }
            else { ///hot
                st = mid;
                test = 1;
            }
        }
    }
    //std::cout << "am scapat " << st << '\n';
    return st;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...