#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |