Submission #102068

#TimeUsernameProblemLanguageResultExecution timeMemory
102068tim25871014The Big Prize (IOI17_prize)C++17
20 / 100
54 ms22392 KiB
#include "prize.h" #include <bits/stdc++.h> using namespace std; int find_best(int n){ vector<int> mem[200010]; for(int i=0;i<200010;i++){ mem[i].push_back(-1); mem[i].push_back(-1); } int loli=0; for(int i=0;i<(int)min(500,n);i++){ vector<int> val=ask(i); loli=max(loli,val[0]+val[1]); } for(int i=0;i<n;i++){ vector<int> val; if(mem[i][0]==-1) val=mem[i]=ask(i); else val=mem[i]; if(val[0]+val[1]==0) return i; if(val[0]+val[1]==loli){ int lb=i,ub=n; while(ub-lb>1){ int mid=ub+lb>>1; vector<int> ser; if(mem[mid][0]==-1) ser=mem[mid]=ask(mid); if(val[0]==ser[0] && ser[0]+ser[1]==loli) lb=mid; else ub=mid; } i=lb; } } }

Compilation message (stderr)

prize.cpp: In function 'int find_best(int)':
prize.cpp:29:27: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
                 int mid=ub+lb>>1;
                         ~~^~~
prize.cpp:39:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...