1. 程式人生 > >C. Ehab and a 2-operation task

C. Ehab and a 2-operation task

連結

[https://codeforces.com/contest/1088/problem/C]

題意

n個數,最多n+1操作,要麼前i個數加x,要麼前i個數對x取餘,最後使得嚴格遞增

分析

直接進行n+1次,開始所有數都加上5e5+10;
後面n次,從1開始到n對a[i]-i+1取餘,就能保證嚴格遞增

程式碼

#include<bits/stdc++.h>
using namespace std;
const int N=2e3+10;
const int ma=5e5+10;
int a[N]; 
int main(){
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    //freopen("in.txt","r",stdin);
    int n;
    while(cin>>n){
        for(int i=1;i<=n;i++) {
            cin>>a[i]; a[i]+=ma;
        }
        cout<<n+1<<endl;
        cout<<1<<' '<<n<<' '<<ma<<endl;
        for(int i=1;i<=n;i++)
        cout<<2<<' '<<i<<' '<<a[i]-i+1<<endl;
    }
   return 0;
}