Submission #742189

#TimeUsernameProblemLanguageResultExecution timeMemory
742189aaaaaNizovi (COI14_nizovi)C++14
50 / 100
918 ms312 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 1e5 + 7; int a,b; int mjesto[MAXN]; int bs (int x, int lo, int hi) { while (lo < hi) { int mid = (lo + hi) / 2; cout << "cmp " << x << ' ' << mid + a << "\n"; cout.flush(); int c; cin >> c; if (c >= 0) lo = mid + 1; else hi = mid; } return lo - 1; } int main () { ios_base::sync_with_stdio (false); cin.tie (0); cin >> a >> b; mjesto[0] = a; for (int i = 1; i <= a; i++) mjesto[i] = bs (i, mjesto[i - 1] - a, b) + a; int lo = 1, hi; for (int i = 1; i <= a; i++) { hi = mjesto[i]; int duk = hi - lo + 1, da = a - i + 1, db = duk - da; if (duk <= 1 || da == 0 || db == 0) { lo++; continue; } cout << "reverse " << lo << ' ' << hi << "\n"; cout.flush (); if (db > 1) { cout << "reverse " << lo << ' ' << lo + db - 1 << "\n"; cout.flush (); } if (da > 1) { cout << "reverse " << hi - da + 1 << ' ' << hi << "\n"; cout.flush (); } lo = hi - da + 2; } cout << "end"; cout.flush (); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...