Submission #1142887

#TimeUsernameProblemLanguageResultExecution timeMemory
1142887qrnNizovi (COI14_nizovi)C++20
0 / 100
12 ms9640 KiB
#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
using namespace std;
// using namespace __gnu_pbds;

#define SPEED ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL);
#define pb push_back
#define ALL(x) x.begin(), x.end()
#define sz(x) (intt)x.size()
#define intt long long  
// #define endl "\n"

const intt mod = 1e9 + 7;
const intt mxN = 200001;
const intt mxA = 5e4 + 31;
const intt inf = 1e9;

vector<intt> C(mxN);
intt cost = 0;

intt cmp_interaction(intt a, intt b) {
    cout << "cmp " << a << " " << b << endl;
    intt x;
    cin >> x;
    return x;
}

void rev(intt l, intt r) {
    cout << "reverse " << l << " " << r << endl;
    reverse(C.begin() + l - 1, C.begin() + l + r - 2);
    cost += (r - l + 1);
}

void solve() {
    intt N1, N2;
    cin >> N1 >> N2;
    C.resize(N1 + N2 + 1);
    intt cock = 0;
    for(intt i = 1; i <= N1 - cock; i++) {
        intt l = N1 + 1, r = N1 + N2;
        while(r - l > 1) {
            intt mid = (l + r) / 2;
            intt ans = cmp_interaction(i, mid);
            if(ans == -1) {
                r = mid;
            } else if(ans == 1) {
                l = mid;
            } else {
                l = mid;
                break;
            }
        }
        intt last_ask = cmp_interaction(i, l);
        if(last_ask == -1 || last_ask == 0) {
            // soluna girecek
            rev(i, l - 1);
            if(i != l - 2)
            rev(i, l - 2);
            --i;
            cock++;
        } else if(last_ask == 1) {
            rev(i, l - 1);
            rev(l - 1, l);
            rev(i, l - 1);;
        }
    }
    cout << "end" << endl;
    // for(intt i = 1; i <= N1 + N2; i++) {
    //     cout << C[i] << " ";
    // }
    // cout << cost << endl;
}

signed main() {
    SPEED;
    intt tst = 1;
    // cin >> tst;
    while(tst--)
    solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...