# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
767515 | Ahmed57 | Cave (IOI13_cave) | C++17 | 5 ms | 468 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 exploreCave(int N){
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
uniform_int_distribution<int> rng(1, (1ll<<20));
int S[N] , D[N] = {0};
for(int i = 0;i<N;i++){
S[i] = rng(rnd)%2;
}
vector<int> rem;
for(int i = 0;i<N;i++)rem.push_back(i);
int x = tryCombination(S);
while(x!=-1){
int e = rng(rnd)%rem.size();
S[rem[e]] = 1-S[rem[e]];
int y = tryCombination(S);
if(y==x){
S[rem[e]] = 1-S[rem[e]];
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(){
}*/
Compilation message (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... |