이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;
void exploreCave(int n) {
int con[5000],test[5000],ans[5000]; // switch i connect to door con[i]
bool fix_switch[5000];
memset(fix_switch,0,sizeof(fix_switch));
for (int i=0; i<n; ++i) { //find door x (0 to x-1 are open)
for (int j=0; j<n; ++j) if (!fix_switch[j]) test[j]=0;
int st=tryCombination(test);
int l=0, r=n-1;
while (r>l) {
int mid=(l+r)/2;
for (int j=0; j<n; ++j) if (!fix_switch[j]) test[j]=0;
for (int j=mid+1; j<=r; ++j) if (!fix_switch[j]) test[j]=1;
if (tryCombination(test)==st) r=mid; //not change
else l=mid+1; //change
}
//door i switch r
con[r]=i;
fix_switch[r]=true;
if (st==i) ans[r]=1;
else ans[r]=0;
test[r]=ans[r];
}
answer(con,ans);
}
# | 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... |