Submission #736317

#TimeUsernameProblemLanguageResultExecution timeMemory
736317beaconmcNizovi (COI14_nizovi)C++14
90 / 100
218 ms284 KiB
#include <bits/stdc++.h> //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> typedef int ll; using namespace std; //using namespace __gnu_pbds; #define FOR(i, x, y) for(ll i=x; i<y; i++) #define FORNEG(i, x, y) for(ll i=x; i>y; i--) //#define ordered_set tree<ll, null_type,less_equal<ll>, rb_tree_tag,tree_order_statistics_node_update> #define fast() ios_base::sync_with_stdio(false);cin.tie(NULL) int main(){ ll a,b; cin >> a >> b; ll stuff[a]; FOR(i,0,a){ ll lo = a+1; ll hi = a+b+1; cout << "cmp " << i+1 << " " << a+1 << endl; ll resp; cin >> resp; if (resp == -1){ stuff[i] = -1; continue; } while (lo < hi){ ll mid = (hi + lo) / 2; cout << "cmp " << i+1 << " " << mid << endl; ll resp; cin >> resp; if (resp<=0){ hi = mid; }else{ lo = mid+1; } } stuff[i] = lo-1; } ll cur = a; ll pos = 1; FOR(i,0,a){ if (stuff[i] == -1){ pos += 1; cur -= 1; continue; } if (pos < stuff[i]) cout << "reverse " << pos << " " << stuff[i] << endl; if (pos < stuff[i]-cur) cout << "reverse " << pos << " " << stuff[i]-cur << endl; if (stuff[i]-cur+1 < stuff[i]) cout << "reverse " << stuff[i]-cur+1 << " "<< stuff[i]<< endl; cur -= 1; pos = stuff[i]-cur+1; } cout << "end" << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...