Submission #208562

#TimeUsernameProblemLanguageResultExecution timeMemory
208562teomrnCave (IOI13_cave)C++14
100 / 100
617 ms640 KiB
#include <bits/stdc++.h> #include "cave.h" using namespace std; void exploreCave(int N) { vector <int> switches(N); iota(switches.begin(), switches.end(), 0); vector <int> ans(N), coresp(N); vector <int> question(N); for (int door = 0; door < N; door++) { // vreau sa deschid usa door int value = 0; for (auto i : switches) question[i] = 0; int guess = tryCombination(question.data()); if (guess <= door && guess != -1) value = 1; /// usa o sa se deschida cu switch-ul pe 1 int p = -1; for (int q = (1 << 20); q; q /= 2) { if (p + q + 1 < switches.size()) { int val = p + q; for (int i = 0; i <= val; i++) question[switches[i]] = 1 - value; for (int i = val + 1; i < (int)switches.size(); i++) question[switches[i]] = value; int guess = tryCombination(question.data()); if (guess > door || guess == -1) p += q; } } p = switches[p + 1]; /// usa door este actionata de switch-ul p coresp[p] = door; ans[p] = value; question[p] = value; switches.erase(find(switches.begin(), switches.end(), p)); } answer(ans.data(), coresp.data()); }

Compilation message (stderr)

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:25:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (p + q + 1 < switches.size()) {
        ~~~~~~~~~~^~~~~~~~~~~~~~~~~
#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...