# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
474239 | MB2 | 동굴 (IOI13_cave) | C++14 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll S[5009],D[5009];
bool fix[5009];
void swp(ll x, ll y)
{
for(ll i=x; i<=y; i++)
{
if(!fix[i])
S[i]^=1;
}
}
ll search(ll cur, ll n)
{
ll r=n-1,l=0;
if(tryCombination(S)!=cur)
swp(0,n-1);
while(r!=l)
{
ll mid=(l+r)/2;
swp(l,mid);
ll inf=tryCombination(S);
swp(l,mid);
if(inf==cur)
l=mid+1;
else
r=mid;
}
return r;
}
void exploreCave(ll x)
{
for(ll i=0; i<x; i++)
{
ll cur=search(i,x);
fix[cur]=true;
S[cur]^=1;
D[cur]=1;
}
answer(S,D);
}