Submission #570878

#TimeUsernameProblemLanguageResultExecution timeMemory
570878nohaxjustsofloCave (IOI13_cave)C++17
0 / 100
533 ms460 KiB
#include <bits/stdc++.h> #include <iostream> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; typedef tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update> order_set; mt19937 mt_rand(chrono::high_resolution_clock::now().time_since_epoch().count()); //uniform_int_distribution<int> gen(-1e9, 1e8); ///(min, max) //int random() {return gen(mt_rand);} const int mxN = 1e6+50000; const int mod = 998244353; const int mxlogN = 34; const int mxK = 26; const int inf = 1e9; const int K = 100000; #include "cave.h" int tryCombination(int S[]); void answer(int S[], int D[]); void exploreCave(int N) { int n=N; int S[n], D[n]; for(int i=0; i<n; i++) S[i]=0; vector<bool> done(n,0); for(int i=0; i<n; i++) { bool b=tryCombination(S)==i; int l=0, r=n-i; while(r-l>1) { int m=(l+r)/2; int c=0; for(int j=0; j<n; j++) { if(!done[j]) { if(c>=l&&c<m) S[j]=1; c++; } } bool b2=tryCombination(S)==i; if(b==b2) l=m; else r=m; for(int j=0; j<n; j++) { if(!done[j]) S[j]=0; } } int k, c=0; for(int j=0; j<n; j++) { if(!done[j]) { if(c==l) { k=j; break; } else c++; } } D[k]=i; S[k]=!b; done[k]=1; } answer(S,D); } /* int main() { int n; cin >> n; vector<int> s(n); for(int i=0; i<n; i++) cin >> s[i]; cout << count_swaps(s); 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...