제출 #285397

#제출 시각아이디문제언어결과실행 시간메모리
285397ec1117동굴 (IOI13_cave)C++17
0 / 100
264 ms504 KiB
#include <bits/stdc++.h> #include "cave.h" using namespace std; typedef long long ll; typedef long double ld; typedef complex<ld> cd; typedef pair<int, int> pi; typedef pair<ll,ll> pl; typedef pair<ld,ld> pd; typedef vector<int> vi; typedef vector<ld> vd; typedef vector<ll> vl; typedef vector<pi> vpi; typedef vector<pl> vpl; typedef vector<cd> vcd; #define For(i, a) for (int i=0; i<(a); i++) #define Ford(i,a) for (int i = (a); i >= 0; i--) #define uid(a, b) uniform_int_distribution<int>(a, b)(rng) #define sz(x) (int)(x).size() #define mp make_pair #define pb push_back #define F first #define S second #define lb lower_bound #define ub upper_bound #define all(x) x.begin(), x.end() #define ins insert const int MOD = 1000000007; const char nl = '\n'; const int MX = 5001; //check the limits, dummy int cur, m[MX], r2[MX]; void exploreCave(int n){ For(i,n)m[i]=-1; int tmp[n];For(i,n)tmp[i]=0; while(cur!=n){//do each door For(i,n)tmp[i]=(m[i]==-1?0:r2[i]); int tmp3=tryCombination(tmp); bool c=(tmp3==cur);//true if cur is closed int l=0, r=n-cur-1; while(l!=r){//find which switch corresponds to which door int tmp2=0; For(i,n)tmp[i]=r2[i]; for(int j=0;j<=r;j++){ while(m[tmp2]!=-1)tmp2++; if(j>=l){ if(j<=(l+r)/2)tmp[tmp2]=1; else tmp[tmp2]=0; } tmp2++; } if((c^(tryCombination(tmp)<=cur)))r=(l+r)/2;// co or oc else l=(l+r)/2+1; } m[l]=cur; r2[l]=c; cur++; } int ret1[n]; int ret2[n]; For(i,n){ ret1[i]=m[i];ret2[i]=r2[i]; } answer(ret1,ret2); } //int main() { // ios_base::sync_with_stdio(0); cin.tie(0); // // int T; cin >> T; // while(T--) { // // } // // return 0; //}
#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...