Submission #97634

#TimeUsernameProblemLanguageResultExecution timeMemory
97634tincamateiCave (IOI13_cave)C++14
100 / 100
637 ms640 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; const int MAX_N = 5000; vector<int> pos; int combination[MAX_N]; int S[MAX_N], D[MAX_N]; void exploreCave(int N) { for(int i = 0; i < N; ++i) pos.push_back(i); for(int i = 0; i < N; ++i) { for(auto it: pos) combination[it] = 1; int rez = tryCombination(combination); bool correctState = false; if(rez == -1 || rez > i) correctState = true; int st = -1, dr = pos.size() - 1; while(dr - st > 1) { int mid = (st + dr) / 2; for(int i = 0; i <= mid; ++i) combination[pos[i]] = correctState; for(int i = mid + 1; i < pos.size(); ++i) combination[pos[i]] = 1 - correctState; int rez = tryCombination(combination); if(rez == -1 || rez > i) dr = mid; else st = mid; } D[pos[dr]] = i; S[pos[dr]] = correctState; combination[pos[dr]] = correctState; pos.erase(pos.begin() + dr); } answer(S, D); }

Compilation message (stderr)

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:29:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(int i = mid + 1; i < pos.size(); ++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...