이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "cave.h"
using namespace std;
const int MAXN = 5000;
int switch_[MAXN];
int on_off[MAXN];
int nn;
void fill(int until, int bit){
for(int i = 0;i < nn;i ++ ){
if(switch_[i] == -1){
on_off[i] = (i < until ? bit : 1 - bit);
}
}
}
void open_door(int u){
fill(nn, 1);
int tt = tryCombination(on_off);
int byt = 0;
if(tt == -1 or tt > u)
byt = 1;
int lf = 0,rf = nn + 1;
int md;
while(rf-lf>1){
md = (lf + rf) / 2;
fill(md, byt);
tt = tryCombination(on_off);
if(tt == -1 or tt > u)
rf = md;
else
lf = md;
}
switch_[rf-1] = u;
on_off[rf-1] = byt;
fill(nn,0);
}
void exploreCave(int N) {
for(int i = 0;i < MAXN;i ++ )
switch_[i] = -1, on_off[i] = -1;
nn = N;
for(int i = 0;i < nn;i ++ )
open_door(i);
answer(on_off, switch_);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |