제출 #678780

#제출 시각아이디문제언어결과실행 시간메모리
678780SamNguyen동굴 (IOI13_cave)C++14
21 / 100
9 ms372 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; const int MAX = 5000 + 7; int swit[MAX], door[MAX]; namespace Subtask1 { bool exploreCave(int N) { iota(door, door + N, 0); fill(swit, swit + N, 0); int cnt = 0; while (cnt <= N) { int i = tryCombination(swit); if (i == -1) { answer(swit, door); return true; } swit[i] ^= 1; cnt++; } return false; } } namespace Subtask2 { bool exploreCave(int N) { fill(swit, swit + N, 0); for (int i = 0; i < N; i++) { swit[i] = 1; door[i] = tryCombination(swit); swit[i] = 0; } answer(swit, door); return true; } } namespace Subtask3 { bool exploreCave(int N) { mt19937 rnd(20050701); generate(swit, swit + N, [&]() { return rnd() & 1; }); int p = tryCombination(swit); while (p != -1) { for (int i = 0; i < N; i++) { swit[i] ^= 1; int p2 = tryCombination(swit); if (p2 > p or p2 == -1) { p = p2; break; } swit[i] ^= 1; } } for (int i = 0; i < N; i++) { swit[i] ^= 1; door[i] = tryCombination(swit); swit[i] ^= 1; } answer(swit, door); return true; } } void exploreCave(int N) { Subtask3::exploreCave(N); }
#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...