Submission #27895

#TimeUsernameProblemLanguageResultExecution timeMemory
27895repeatingCave (IOI13_cave)C++11
51 / 100
224 ms512 KiB
#include <bits/stdc++.h> #include "cave.h" #define F first #define Se 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[2005]; int pos[2005]; int a[2005]; int res[2005]; int out[2005]; bool b[2005]; int n; void check(int x){ int l=0,r=n,ret1,ret2; W(l<r){ 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)){ l=mid+1; } else{ r=mid; } } b[l]=1; ret1=tryCombination(a); if(ret1==x)pos[x]=1; else pos[x]=0; 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); }
#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...