Submission #1263315

#TimeUsernameProblemLanguageResultExecution timeMemory
1263315DeltaStructCave (IOI13_cave)C++20
100 / 100
579 ms552 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;

void exploreCave(int n){
  vector<int> A(n),R(n),B(n,1),D(n);
  auto f = [&n](vector<int>& A) -> int {
    int t = tryCombination(A.data());
    return (t==-1?n:t);
  };
  for (int i(0);i < n;++i){
    A = R; for (int k(0);k < n;++k) if (B[k]) A[k] = 1;
    int t = (f(A)>i),l = 0,r = n,mid;
    while(r-l>1){
      mid = (l+r)/2;
      A = R; for (int k(0);k < n;++k) if (B[k]) A[k] = (l<=k&&k<mid?t:1-t);
      if (f(A)>i) r = mid;
      else l = mid;
    }
    D[l] = i,R[l] = t,B[l] = 0;
  }
  answer(R.data(),D.data());
}
#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...