Submission #977030

# Submission time Handle Problem Language Result Execution time Memory
977030 2024-05-07T10:35:48 Z Error404 The Big Prize (IOI17_prize) C++17
0 / 100
51 ms 2136 KB
#include "prize.h"
#include <bits/stdc++.h>
using namespace std;
#define pi pair<int,int>
#define f first
#define s second

const int  MAX = 2e5;
int ans[MAX][2];
int a;


pi query(int pos){

    if(ans[pos][0]!=-1) return {ans[pos][0], ans[pos][1]};
    auto hold = ask(pos);
    ans[pos][0] = hold[0];
    ans[pos][1] = hold[1];
    if(hold[0]+hold[1]==0){
        a = pos;
    }
    return {hold[0],hold[1]};
}



int sum(int pos){
    query(pos);
    return ans[pos][0]+ ans[pos][1];
}

void solve(int l, int r){
    if(a!=-1) return;

    if(l==r){
        query(l);
    }

    while(sum(l)!= sum(r)){
        if(sum(l)< sum(r)) l++;
        else r++;
    }

    if(ans[l][0]==ans[r][0]) return;
    int m = (l+r)/2;
    solve(l,m);
    solve(m+1,r);

}


int find_best( int n ) {
    if(n<5000){
        for(int i = 0; i < n; i++){
            auto j = ask(i);
            if(j[0]+j[1]==0) return i;
        }
    }


    for(int i = 0; i < n; i++){
        ans[i][0]=-1;
    }
    a=-1;
    solve(0,n-1);
    return a;

}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1880 KB Output is correct
2 Correct 1 ms 1880 KB Output is correct
3 Correct 1 ms 2136 KB Output is correct
4 Incorrect 51 ms 1880 KB Incorrect
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1880 KB Output is correct
2 Correct 1 ms 1880 KB Output is correct
3 Correct 1 ms 1880 KB Output is correct
4 Incorrect 50 ms 1880 KB Incorrect
5 Halted 0 ms 0 KB -