Submission #562744

#TimeUsernameProblemLanguageResultExecution timeMemory
562744four_specksCave (IOI13_cave)C++17
100 / 100
498 ms460 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; namespace { } // namespace void exploreCave(int N) { vector<int> s(N); vector<int> d(N); vector<int> guess(N, 0); vector<bool> done(N, 0); auto toggle = [&](int l, int r) -> void { for (int i = l; i < r; i++) { if (!done[i]) guess[i] ^= 1; } }; for (int i = 0; i < N; i++) { int lo = 1, hi = N; bool last = (tryCombination(guess.data()) + N + 1) % (N + 1) > i; while (lo < hi) { int mid = (lo + hi) / 2; toggle(0, mid); if (last != (tryCombination(guess.data()) + N + 1) % (N + 1) > i) { last = !last; hi = mid; } else lo = mid + 1; } s[lo - 1] = guess[lo - 1] ^ !last; d[lo - 1] = i; done[lo - 1] = 1; guess[lo - 1] = s[lo - 1]; } answer(s.data(), d.data()); }

Compilation message (stderr)

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:38:74: warning: suggest parentheses around comparison in operand of '!=' [-Wparentheses]
   38 |             if (last != (tryCombination(guess.data()) + N + 1) % (N + 1) > i)
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
#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...