제출 #895299

#제출 시각아이디문제언어결과실행 시간메모리
895299IrateHotter Colder (IOI10_hottercolder)C++14
80 / 100
449 ms20788 KiB
#include<bits/stdc++.h>
using namespace std;
int Guess(int n);
// int lastG = -1, X;
// int cnt = 0;
// int Guess(int n){
//     cnt++;
//     // cout << "GUESS: " << lastG << ", " << n << '\n';
//     if(lastG == -1 || abs(X - lastG) == abs(X - n)){
//         lastG = n;
//         return 0;
//     }
//     if(abs(X - lastG) > abs(X - n)){
//         lastG = n;
//         return 1;
//     }
//     lastG = n;
//     return -1;
// }
int HC(int n){
    int l = 1, r = n;
    int last = 1;
    Guess(1);
    while(l < r){
        int mid = (l + r) / 2;
        // cout << "[" << l << ", " << r << "]\n";
        if(mid == last)mid++;
        int num = Guess(mid);
        if(num == 1){
            if(last < mid){
                l = (last + mid) / 2 + 1;
            }
            else{
                r = (last + mid) / 2;
            }
        }
        else if(num == -1){
            if(last < mid){
                r = (last + mid) / 2;
            }
            else{
                l = (last + mid) / 2 + 1;
            }
        }
        else{
            return (last + mid) / 2;
        }
        last = mid;
    }
    return l;
}
// int main(){
//     int COUNTER = 0;
//     for(int i = 1;i <= 500;++i){
//         for(int j = 1;j <= i;++j){
//             X = j;
//             cnt = 0;
//             lastG = -1;
//             int found_num = HC(i);
//             if(found_num != j){
//                 cout << "Wrong Answer: " << i << ", " << j << '\n';
//                 cout << "FOUND: " << found_num << '\n';
//                 break;
//             }
//             else if(cnt > 15){
//                 COUNTER++;
//                 cout << i << ", " << j << ": " << cnt << '\n';
//             }
//         }
//     }
//     cout << COUNTER;
//     // X = 2;
//     // cout << HC(2) << '\n';
//     // cout << cnt;
// }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...