# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
767504 | Ahmed57 | 동굴 (IOI13_cave) | C++17 | 0 ms | 0 KiB |
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<bits/stdc++.h>
using namespace std;
vector<int> remo(vector<int> v,int ind){
vector<int>lol;
for(int i = 0;i<v.size();i++){
if(i==ind)continue;
lol.push_back(v[i]);
}
return lol;
}
void voidexploreCave(int N){
int S[N] , D[N] = {0};
for(int i = 0;i<N;i++){
S[i] = rand()%2;
}
vector<int> rem;
for(int i = 0;i<N;i++)rem.push_back(i);
int x = tryCombination(S);
while(x!=-1){
int e = rand()%rem.size();
S[rem[e]] = 1-S[rem[e]];
int y = tryCombination(S);
if(y==x)continue;
if(y==-1||y>x){
D[rem[e]] = x;
rem =remo(rem,e);
x = y;
continue;
}else if(x<y){
D[rem[e]] = y;
S[rem[e]] = 1-S[rem[e]];
rem = remo(rem,e);
continue;
}
}
for(auto i:rem){
S[i] = 1 - S[i];
int y = tryCombination(S);
D[i] = y;
S[i] = 1 - S[i];
}
answer(S,D);
}
/*
int main(){
}*/