Submission #1195860

#TimeUsernameProblemLanguageResultExecution timeMemory
1195860NonbangkokCave (IOI13_cave)C++17
100 / 100
514 ms540 KiB
#include <bits/stdc++.h> #include "cave.h" #define coutf(n, m) cout << fixed << setprecision(n) << m #define forr(i, a, n) for (int i = a; i < n; i++) #define forl(i, a, n) for (int i = a; i > n; i--) #define macos ios::sync_with_stdio(0);cin.tie(0);cout.tie(0) #define endll "\n" #define sp " " typedef long long ll; using namespace std; const int M = 5010; int k; int S[M],D[M],test[M]; bool fix[M]; void exploreCave(int n) { forr(i,0,n){ // loop the door // int i = 0; k = (tryCombination(S)==i); int l = 0, r = n - 1,m; while(l<r){ // binary search to find the position of river m = (l+r) >> 1; forr(j,0,n){ if(fix[j])test[j] = S[j]; else if(l<=j&&j<=m)test[j] = k; else test[j] = 1 - k; // cout << test[j] << sp; } // cout << endll; // cout << "B : " << l << sp << m << sp << r << sp << (tryCombination(test)==i) << endll; if(tryCombination(test)==i)l = m + 1; else r = m; } // cout << "STDOUT : "; // cout << l << sp << m << sp << r << endll; S[l] = k; D[l] = i; fix[l] = true; } answer(S,D); }
#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...