제출 #1142926

#제출 시각아이디문제언어결과실행 시간메모리
1142926turska동굴 (IOI13_cave)C++20
100 / 100
1714 ms1204 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; const int maxN = 5000; int S[maxN]; int D[maxN]; int prv; set<int> full; void solve(set<int> a) { if (a.size()==1) { int i = *a.begin(); S[i] = 1; int cur = tryCombination(S); if (cur!=-1 && cur<prv) S[i] = 0; if (cur==-1) prv = -1; else prv = max(prv, cur); full.erase(i); return; } set<int> b; while (a.size()>b.size()) { b.insert(*a.begin()); a.erase(a.begin()); } for (auto i: a) { S[i] = 1; } int res = tryCombination(S); for (auto i: a) { S[i] = 0; } if (res!=prv) solve(a); else solve(b); } void exploreCave(int N) { prv = tryCombination(S); for (int i=0; i<N; i++) full.insert(i); while (prv!=-1) { solve(full); } for (int i=0; i<N; i++) { S[i] ^= 1; D[i] = tryCombination(S); S[i] ^= 1; } answer(S, D); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...