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 "cave.h"
#include <vector>
#include <iostream>
using namespace std;
vector<int> combination(int N,int start,int end,int val,vector<int> connected_door,vector<int> correct_combo){
vector<int> arr;
for(int i=0;i<N;i++){
if(connected_door[i] != -1){
arr.push_back(correct_combo[i]);
}else{
if(start <= i and i < end){
arr.push_back(val);
}else{
arr.push_back((val == 0) ? 1 : 0);
}
}
}
return arr;
}
void exploreCave(int N) {
vector<int> connected_door(N,-1);
vector<int> correct_combo(N,0);
for(int i=0;i<N;i++){
int combo = 0;
int* S = &combination(N,0,N,0,connected_door,correct_combo)[0];
if (tryCombination(S) == i){
combo = 1;
}
int left = 0,right = N;
while(left < right){
int m = left + ((right-left)/2);
int* S = &combination(N,left,m+1,combo,connected_door,correct_combo)[0];
if (tryCombination(S) == i+1){
right = m-1;
}else{
left = m;
}
}
connected_door[i] = left;
correct_combo[i] = combo;
}
answer(&correct_combo[0],&connected_door[0]);
}
# | 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... |