제출 #1030909

#제출 시각아이디문제언어결과실행 시간메모리
1030909coolboy19521The Big Prize (IOI17_prize)C++17
90 / 100
62 ms596 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]);
    }
    int ls = 0;
    for (; ls < n;) {
        for (; ls < n; ls ++) {
            auto pr = ask(ls);
            int sm = pr[0] + pr[1];
            if (sm == mx) break;
            if (0 == sm)
                return ls;
        }
        int ps = ask(ls)[1];
        int rs = n;
        while (1 < rs - ls) {
            int mi = ls + (rs - ls) / 2;
            auto pr = ask(mi);
            int sm = pr[0] + pr[1];
            if (sm != mx) rs = mi;
            if (0 == ps - pr[1]) ls = mi;
            else rs = mi;
        }
        ls ++;
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...