Submission #1211256

#TimeUsernameProblemLanguageResultExecution timeMemory
1211256LIACave (IOI13_cave)C++17
0 / 100
73 ms328 KiB
#include <bits/stdc++.h>
using namespace std;
typedef int ll;
typedef tuple<ll, ll, ll> plll;
typedef vector<plll> vplll;
typedef pair<ll, ll> pll;
typedef vector<ll> vll;
typedef vector<pll> vpll;
typedef vector<vector<pll>> vvpll;
typedef vector<vector<ll>> vvll;
typedef vector<bool> vb;
typedef vector<vector<bool>> vvb;
#define loop(i, s, e) for (ll i = (s); i < (e); ++i)
#define loopr(i, e, s) for (ll i = (e)-1; i >= (s); --i)
#define all(a) a.begin(), a.end()
const ll inf = 1e9 + 7;
#include "cave.h"


ll s[5000];
vll pos;
vb ass;
ll n;
void update(ll i,ll endi) {
 for (;i<=endi ;i++) {
   if (!ass[i]) s[i] = (s[i]==0?1:0);
 }
}
ll bl(ll i) {
  ll l = 0, r =n-1;
  while (l<r) {
    ll t = tryCombination(s);
    ll mid = (r+l)/2;
    update(l,mid);
    ll t1 = tryCombination(s);
    if (t!= t1) {
      r = mid;
    }
    else l = mid+1;
  }
  ass[i] = 1;
  pos[i] = l;
  return l;
}
void exploreCave(int N) {
  n= N;
  pos.resize(n);
  ass.resize(n);
  loop(i,0,n) {
   ll c=  bl(i);
    if (tryCombination(s)==c)  s[i] = (s[i]==0?1:0);
  }
  ll posi[n];
  loop(i,0,n) posi[i] = pos[i];
  answer(s, posi);
}
#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...