Submission #27923

#TimeUsernameProblemLanguageResultExecution timeMemory
27923repeatingCave (IOI13_cave)C++11
100 / 100
516 ms640 KiB
#include <bits/stdc++.h> #include "cave.h" #define F first #define S second #define P push #define pb push_back #define MEM(dp,i) memset(dp,i,sizeof(dp)) #define W while #define R return #define C continue #define SI size() #define ll long long #define ld long double #define pll pair<ll,ll> #define pii pair<int,int> #define SF(x) scanf("%I64d",&x) #define SF2(x,y) scanf("%I64d%I64d",&x,&y) #define SF3(x,y,z) scanf("%I64d%I64d%I64d",&x,&y,&z) #define SF4(x,y,z,o) scanf("%I64d%I64d%I64d%I64d",&x,&y,&z,&o) #define all(v) v.begin(),v.end() using namespace std; const long long INF = 1e9; const int MX=100005; int s[5005]; int pos[5005]; int a[5005]; int res[5005]; int out[5005]; bool b[5005]; int n; void pre(int x,int &l,int &r){ int ret1,ret2; int mid=(l+r)/2; ret1=tryCombination(a); for(int i=l;i<=mid;i++){ if(b[i])C; a[i]=1; } ret2=tryCombination(a); for(int i=l;i<=mid;i++){ if(b[i])C; a[i]=0; } if(ret1==ret2||(ret1!=x&&ret2!=x)){ if(ret1==x&&ret2==x)pos[x]=1; else{pos[x]=0;} l=mid+1; } else{ if(ret1==x)pos[x]=1; else pos[x]=0; r=mid; } } void check(int x){ int l=0,r=n,ret1,ret2; pre(x,l,r); W(l<r){ int mid=(l+r)/2; for(int i=l;i<=mid;i++){ if(b[i])C; a[i]=(pos[x]^1); } for(int i=mid+1;i<=r;i++){ if(b[i])C; a[i]=pos[x]; } ret1=tryCombination(a); for(int i=l;i<=r;i++){ if(b[i])C; a[i]=0; } if(ret1==x){ r=mid; } else{ l=mid+1; } } b[l]=1; a[l]=pos[x]; out[l]=pos[x]; res[l]=x; } void exploreCave(int N) { n=N; for(int i=0;i<N;i++){ check(i); } answer(out,res); }

Compilation message (stderr)

cave.cpp: In function 'void check(int)':
cave.cpp:64:22: warning: unused variable 'ret2' [-Wunused-variable]
     int l=0,r=n,ret1,ret2;
                      ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...