#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e6+114;
mt19937_64 rnd(time(0));
int rndi(int l,int r){
return rnd()%(r-l+1)+l;
}
int a[N],b[N],cnt[N],n,q;
signed main(){
freopen("1.in","w",stdout);
std::ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
n=100000,q=100010;
cout << n << " " << q << "\n";
for(int i=1;i<=n;++i) cout << i << " ";
cout << "\n";
for(int i=n/2-1;i>=1;--i) cout << 2 << " " << i << " " << i+1 << "\n";
for(int i=n/2;i>=1;--i) cout << 3 << " " << 1 << " " << i << " " << i-1 << "\n";
cout << 1 << " " << 1 << "\n";
for(int i=1;i<=9;++i) cout << 3 << " " << 1 << " " << 1 << " " << -500000000*i << "\n";
cout << 1 << " " << 1 << "\n";
return 0;
}
这篇题解 中的 take_node 函数复杂度是假的。