Submission #1238375

#TimeUsernameProblemLanguageResultExecution timeMemory
1238375ema_nicoleHotter Colder (IOI10_hottercolder)C++17
0 / 100
479 ms136436 KiB
#include <iostream> #include "grader.h" using namespace std; /*int Guess(int nr) { cout << "Guess-ul e " << nr << '\n'; int a; cin >> a; return a; }*/ 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 test = 2; ///1 --> st, 2 --> dr int ult = 1; ///care a fost ult cel mai hot while(st < dr) { /// TBD!!! int tip; int mid = (st + dr) / 2; if(test == 1) { ///testam st tip = Guess(st); if(tip == -1) { ///cold --> mutam st-ul spre dr test = 1; if(dr - mid == mid - st) ///same --> NU merge st = mid + 1; else if(mid - st < dr - mid) ///st e mai aproape --> NU merge st = mid + 1; else ///dr e mai aproape st = mid; } else if(tip == 0) ///gg done return mid; else { ///hot --> mutam dr-ul mai spre st ult = st; test = 2; if(dr - mid == mid - st) ///dist e same --> NU poa sa fie mid dr = mid - 1; else if(mid - st < dr - mid) ///st e mai aproape --> se poate mid dr = mid; else ///dr e mai aproape --> NU se poate mid dr = mid - 1; } } else { ///testam dr tip = Guess(dr); if(tip == -1) { ///cold --> mutam spre st test = 2; if(dr - mid == mid - st) ///dist e same --> NU poa sa fie mid dr = mid - 1; else if(mid - st < dr - mid) ///st e mai aproape --> se poate mid dr = mid; else ///dr e mai aproape --> NU se poate mid dr = mid - 1; } else if(tip == 0) ///same --> fix mij, done return mid; else { ///hot --> mutam st-ul mai spre dr ult = dr; test = 1; if(dr - mid == mid - st) ///same --> NU merge st = mid + 1; else if(mid - st < dr - mid) ///st e mai aproape --> NU merge st = mid + 1; else ///dr e mai aproape st = mid; } } } return ult; } /* int main() { cout << HC(8); return 0; } */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...