题解:CF1733C Parity Shuffle Sorting

· · 题解

题目传送门

思路

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,n,a[100010];
signed main() {
    scanf("%lld",&t);
    while(t--) {
        scanf("%lld",&n);
        for(int i=1; i<=n; i++) {
            scanf("%lld",&a[i]);
        }
        if(n==1) {
            printf("0\n");
            return ;
        }
        printf("%lld\n",n-1);
        printf("1 %lld\n",n);
        if((a[1]+a[n])%2==0) a[1]=a[n];
        else a[n]=a[1];
        for(int i=2; i<n; i++) {
            if((a[1]+a[i])%2==0) {
                printf("%lld %lld\n",i,n);
            } else {
                printf("1 %lld\n",i);
            }
        }
    }
    return 0;
}