Submission #370259

#TimeUsernameProblemLanguageResultExecution timeMemory
370259doowey커다란 상품 (IOI17_prize)C++14
90 / 100
124 ms1096 KiB
#include <bits/stdc++.h>
#include "prize.h"


using namespace std;
typedef long long ll;
typedef pair<int, int> pii;

#define fi first
#define se second
#define mp make_pair

map<int,pii> res;

pii get(int x){
    if(res.count(x)) return res[x];
    vector<int> g = ask(x);
    res[x] = mp(g[0], g[1]);
    return mp(g[0],g[1]);
}

int low = 0;
int n;

int solve(int li, int ri){
    if(li > ri) return -1;
    pii ga = get(li);
    if(ga.fi + ga.se == 0){
        return li;
    }
    if(li == ri) return -1;
    if(ga.fi + ga.se < low)
        return solve(li + 1, ri);
    int sha = ga.se;
    pii gb = get(ri);
    if(gb.fi + gb.se == 0)
        return ri;
    if(gb.fi + gb.se < low)
        return solve(li, ri - 1);
    int tot = ga.se - gb.se;
    if(tot == 0) return -1;
    int mid = (li + ri) / 2;
    int sa = solve(li, mid);
    int sb = solve(mid + 1, ri);
    return max(sa, sb);
}

int find_best(int _n) {
    n = _n;
    pii cur;
    for(int i = 0 ; i < min(n,500); i ++ ){
        cur = get(i);
        if(cur.fi + cur.se == 0)
            return i;
        low = max(low, cur.fi + cur.se);
    }
	return solve(0, n - 1);
}

Compilation message (stderr)

prize.cpp: In function 'int solve(int, int)':
prize.cpp:34:9: warning: unused variable 'sha' [-Wunused-variable]
   34 |     int sha = ga.se;
      |         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...