Submission #1366132

#TimeUsernameProblemLanguageResultExecution timeMemory
1366132mariza커다란 상품 (IOI17_prize)C++20
20 / 100
14 ms412 KiB
#include "prize.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
#define MID ((l+r)/2)

int find_best(int n){
    ll f=0, c=0, x=0, q=0;
    for(ll i=0; i<500; i++){
        // assert(q<10000);
        // q++;
        vector<int> ans=ask(i);

        if(ans[0]==0 && ans[1]==0) return i;
        else if(ans[0]+ans[1]>x){
            f+=c;
            c=0;
            x=ans[0]+ans[1];
        }
        else if(ans[0]+ans[1]==x){
            c++;
        }
        else{
            f++;
        }
    }
    assert(x<500);

    ll y=500;
    while(f<x){
        ll l=y, r=n-1, idx;
        while(l<=r){
            vector<int> ans=ask(MID);

            if(ans[0]==0 && ans[1]==0) return MID;
            else if(ans[0]+ans[1]<x){
                idx=MID;
                r=MID-1;
            }
            else if(ans[0]>f) r=MID-1;
            else l=MID+1;
        }

        f++;
        y=idx+1;
    }

    return -1;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...