Submission #1087857

#TimeUsernameProblemLanguageResultExecution timeMemory
1087857vjudge1Xor Sort (eJOI20_xorsort)C++17
0 / 100
1 ms348 KiB
#include <bits/stdc++.h>
using namespace std;


int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n, t;
    cin >> n >> t;
    int a[n];
    for(int i = 0;i < n; i++){
        cin >> a[i];
    }
    //3 2 8 4 1
    //1 2 8 12 13
    if(t==1){
        vector<pair<int, int>>op;

        for(int i = 0;i < n-1; i++){
            if(a[i+1] <= a[i]){
                int nw = (a[i+1]^a[i]);
                if(a[i+1] > nw){
                    a[i] = nw;
                    op.push_back({i, i+1});
                }
                else{
                    a[i+1]=nw;
                    op.push_back({i+1, i});
                }
            }
        }
        cout << op.size() << endl;
        for(auto [i, j] : op)cout << i+1 << " " << j+1 << endl;
    }
    else{
        vector<pair<int, int>>op;

        for(int i = 0;i < n-1; i++){
            if(a[i+1] < a[i]){
                int nw = (a[i+1]^a[i]);
                if(a[i+1] >= nw){
                    a[i] = nw;
                    op.push_back({i, i+1});
                }
                else{
                    a[i+1]=nw;
                    op.push_back({i+1, i});
                }
            }
        }
        cout << op.size() << endl;
        for(auto [i, j] : op)cout << i+1 << " " << j+1 << endl;
    }
    
    }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...