Submission #90609

#TimeUsernameProblemLanguageResultExecution timeMemory
90609MilkiNizovi (COI14_nizovi)C++14
100 / 100
180 ms676 KiB
#include<bits/stdc++.h> using namespace std; #define FOR(i, a, b) for(int i = a; i < b; ++i) #define REP(i, n) FOR(i, 0, n) #define _ << " " << #define sz(x) ((int) x.size()) #define pb(x) push_back(x) typedef long long ll; typedef pair<int, int> point; const int MAXN = 1e3 + 5; int a, b; int sol[MAXN]; int cmp(int x, int y){ cout << "cmp" _ x _ y << endl; fflush(stdout); int ret; cin >> ret; return ret; } void rev(int x, int y){ if(x >= y) return; cout << "reverse" _ x _ y << endl; fflush(stdout); } int main(){ cin >> a >> b; REP(i, a){ int lo = a, hi = a + b; while(lo < hi){ int mid = (lo + hi + 1) >> 1; int ans = cmp(i + 1, mid); if(ans <= 0) hi = mid - 1; else lo = mid; } sol[i] = lo; } int start = 1, len = a + 1; REP(i, a){ len --; if(i && sol[i] == sol[i - 1]) { start ++; continue; } if(sol[i] == a) { start ++; continue; } rev(start, sol[i]); rev(sol[i] - len + 1, sol[i]); rev(start, sol[i] - len); start = sol[i] - len + 2; } cout << "end"; fflush(stdout); }
#Verdict Execution timeMemoryGrader output
Fetching results...