# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
153775 | jhwest2 | 동굴 (IOI13_cave) | C++14 | 9 ms | 640 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#include "cave.h"
int Q[5050], S[5050];
int ans[5050], where[5050];
void exploreCave(int N) {
for (int i=0; i<N; i++) ans[i] = -1;
for (int i=0; i<N; i++) {
for (int j=0; j<N; j++) {
if (ans[j] == -1) Q[j] = 0;
else Q[j] = ans[j];
}
int A = tryCombination(Q);
for (int j=0; j<N; j++) {
if (ans[j] == -1) Q[j] = 1;
else Q[j] = ans[j];
}
int B = tryCombination(Q), C = A<B;
int cnt = 0;
for (int j=0; j<N; i++) {
if (ans[j] == -1) S[cnt++] = j;
}
int lo=0, hi=cnt-1;
while (lo<hi) {
int mid = lo+hi>>1;
for (int j=0; j<N; j++) {
if (ans[j] != -1) Q[j] = ans[j];
else {
if (S[lo]<=j && j<=S[mid]) Q[j] = C;
else Q[j] = !C;
}
}
int tmp = tryCombination(Q);
if (tmp > i) hi = mid;
else lo = mid+1;
}
where[i] = lo;
ans[i] = C;
}
answer(ans, where);
}
컴파일 시 표준 에러 (stderr) 메시지
# | 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... |