Submission #286427

#TimeUsernameProblemLanguageResultExecution timeMemory
286427egekabasThe Big Prize (IOI17_prize)C++14
20 / 100
3037 ms13620 KiB
#include "prize.h"
#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<ll, ll> pll;
typedef pair<ull, ull> pull;
typedef pair<int, int> pii;
typedef pair<ld, ld> pld;
vector<int> dp[200009];
int curval = 0;
int N;
vector<int> q(int x){
	if(dp[x].size())
		return dp[x];
	return dp[x] = ask(x);
}
vector<int> used;
int mark[200009];
int find_best(int n) {
	N = n;
	for(int i = 0; i < 570 && i < n; ++i)
		curval = max(curval, q(i)[0]+q(i)[1]);
	while(1){
		int l = 0, r = n-1;
		int lval = 0, rval = 0;
		while(l < r){
			int mid = (l+r)/2;
			while(mark[mid] && mid > l)
				--mid;
			while(mid < r && mark[mid])
				++mid;
			if(q(mid)[0] + q(mid)[1] != curval){
				l = r = mid;
				continue;
			}
			if(q(mid)[0]-(lower_bound(all(used), l)-used.begin()) > 0)
				r = mid-1;
			else
				l = mid+1;
		}
		if(q(l)[0]+q(l)[1] == 0)
			return l;
		else{
			used.pb(l);
			mark[l] = 1;
		}
	}
}

Compilation message (stderr)

prize.cpp: In function 'int find_best(int)':
prize.cpp:32:7: warning: unused variable 'lval' [-Wunused-variable]
   32 |   int lval = 0, rval = 0;
      |       ^~~~
prize.cpp:32:17: warning: unused variable 'rval' [-Wunused-variable]
   32 |   int lval = 0, rval = 0;
      |                 ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...