제출 #1030949

#제출 시각아이디문제언어결과실행 시간메모리
1030949coolboy19521커다란 상품 (IOI17_prize)C++17
90 / 100
66 ms428 KiB
#include "prize.h"
#include "iostream"
 
using namespace std;
 
int find_best(int n) {
    int mx = 0;
    for (int i = 0; i < min(n, 500); i ++) {
        auto pr = ask(i);
        mx = max(mx, pr[0] + pr[1]);
        if (0 == pr[0] + pr[1]) return i;
    }
    int ls = 500;
    for (; ls < n; ls ++) {
        int ps = -1;
        for (; ls < n; ls ++) {
            auto pr = ask(ls);
            int sm = pr[0] + pr[1];
            if (0 == sm) return ls;
            if (sm == mx) {
                ps = pr[1];
                break;
            }
        }
        int rs = n;
        while (1 < rs - ls) {
            int mi = (ls + rs) / 2;
            auto pr = ask(mi);
            int sm = pr[0] + pr[1];
            if (0 == sm) return mi;
            if (sm != mx) rs = mi;
            if (0 == ps - pr[1]) ls = mi;
            else rs = mi;
        }
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...