This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "cave.h"
using namespace std;
int n;
void exploreCave(int N){
n = N;
int S[n],D[n],temp[n];
vector<bool> found(n,false);
for (int i = 0; i < n; i++){
S[i] = 0;
D[i] = -1;
}
int ans = tryCombination(S),i=0,runs =0;
while (ans!=-1){
int prevans = ans;
while(prevans == ans){
//cout << ans << "\n";
//cout << runs << " ";
while (found[i]){
// cout << i << " ";
i = (i+1)%n;
}
// cout << "\n";
// cout << i << " ";
S[i] ^= 1;
runs++;
ans = tryCombination(S);
i = (i+1)%n;
}
//cout << prevans << " " << ans << " " << ((i-1)+n)%n << "\n";
if (ans == -1){
break;
}
found[((i-1)+n)%n] = true;
if (ans < prevans){
//D[((i-1)+n)%n] = ans;
S[((i-1)+n)%n] ^= 1;
ans = prevans;
//S1[i-1] = S[i-1];
}
//cout << "f " << ((i-1)+n)%n << " " << S[((i-1)+n)%n] << "\n";
}
// cout << runs << "\n";
for (int i = 0; i < n; i++){
temp[i] = S[i];
}
for (int i = 0; i < n; i++){
temp[i] ^= 1;
D[i] = tryCombination(temp);
temp[i] ^= 1;
//cout << D[i] << " ";
}
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... |