Submission #1180050

#TimeUsernameProblemLanguageResultExecution timeMemory
1180050vladkonovalXor Sort (eJOI20_xorsort)C++20
0 / 100
0 ms324 KiB
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
using ll = long long;
ll n,k,i,a[1007];
vector<pair<ll,ll>> res;
int main() {
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    cin>>n>>k;
    if (k==1) {
        for (i=1;i<=n;i++) cin>>a[i];
        for (i=1;i<=n;i++) {
            if (a[i]<=a[i-1]) {
                if (min(a[i]^a[i-1],a[i]^a[i+1])>a[i-1]) {
                    a[i] = min(a[i]^a[i-1],a[i]^a[i+1]);
                    if (min(a[i]^a[i-1],a[i]^a[i+1])==a[i]^a[i-1]) res.push_back({i,i-1});
                    else res.push_back({i,i+1});
                }
                else {
                    a[i] = max(a[i]^a[i-1],a[i]^a[i+1]);
                    if (max(a[i]^a[i-1],a[i]^a[i+1])==a[i]^a[i-1]) res.push_back({i,i-1});
                    else res.push_back({i,i+1});
                }
            }
        }
        cout<<res.size()<<endl;
        for (auto x:res) cout<<x.first<<' '<<x.second<<endl;
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...