CF1635C Differential Sorting
题目传送门
题意:
给你一个长度为
思路:
首先非降序的情况直接输出,然后对于最后两个位置,一定要是非降序的,接下来我们对于前面的
代码如下:
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e6+10;
const int INF=0x3f3f3f3f;
int t,n,a[N];
signed main(){
cin>>t;
while(t--){
int f=0;
cin>>n;
a[0]=-1e9-1;
for(int i=1;i<=n;i++){
cin>>a[i];
f|=a[i]<a[i-1];
}
if(!f){
cout<<0<<endl;
continue;
}
if(a[n-1]>a[n]){
cout<<-1<<endl;
}else if(a[n-1]-a[n]>a[n-1]){
cout<<-1<<endl;
}else{
cout<<n-2<<endl;
for(int i=1;i<n-1;i++){
cout<<i<<" "<<n-1<<" "<<n<<endl;
}
}
}
return 0;
}
完结撒花~