# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1076209 | 2024-08-26T11:47:46 Z | amin | The Big Prize (IOI17_prize) | C++14 | 72 ms | 1880 KB |
#include "prize.h" #include <bits/stdc++.h> using namespace std; vector<int>q; int a[1000000],b[1000000]; int find_best(int n) { int cur=0; for(int i=0;i<n;i++) { a[i]=-1; b[i]=-1; } q=ask(0); a[0]=q[0]; b[0]=q[1]; int mi=min(mi,a[0]+b[0]); while(cur!=n) { // cout<<cur<<endl; if(a[cur]==-1) { q=ask(cur); a[cur]=q[0]; b[cur]=q[1]; } if(mi!=a[cur]+b[cur]) { cur++; continue; } int p=a[cur]; int pp=b[cur]; if(p==0&&pp==0) return cur; int l=0; int j=sqrt(n); int r=min(n-cur,j); while(l<r-1) { int mid=(l+r)/2; if(a[cur+mid]==-1) { q=ask(cur+mid); a[cur+mid]=q[0]; b[cur+mid]=q[1]; } if(p==a[cur+mid]&&pp==b[cur+mid]) { l=mid; }else r=mid; } cur=r+cur; } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 72 ms | 1880 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 61 ms | 1880 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |