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;
}
posted @ 2018-12-05 12:19  ChunhaoMo  阅读(381)  评论(2编辑  收藏  举报