이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;
const int nmax = 5000;
bool viz[nmax + 1];
int v[nmax + 1];
int s[nmax + 1], d[nmax + 1];
void divide (int x, int y, int ind, int lst) {
if (lst == -1)
lst = nmax + 1;
if (x == y) {
s[x] = (lst > ind ? v[x] : 1 - v[x]);
d[x] = ind;
viz[x] = 1;
return ;
}
int mij = (x + y) / 2;
for (int i = x; i <= mij; ++ i)
if (viz[i] == 0)
v[i] ^= 1;
int val = tryCombination(v);
if (val == -1)
val = nmax + 1;
if ((val > ind && lst <= ind) || (val <= ind && lst > ind)) {
divide(x, mij, ind, val);
} else {
for (int i = x; i <= mij; ++ i)
if (viz[i] == 0)
v[i] ^= 1;
divide(mij + 1, y, ind, lst);
}
}
void exploreCave(int N) {
for (int i = 0; i < N; ++ i) {
for (int j = 0; j < N; ++ j)
v[j] = s[j];
divide(0, N - 1, i, tryCombination(v));
}
answer(s, d);
}
# | 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... |