Rt.
此 hack 可以卡掉一些能通过原数据的玄学做法(比如我的)
大致就是这样造。
#include <bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#include <ext/rope>
using namespace __gnu_pbds;
using namespace std;
#define pb push_back
#define rep(i,x,y) for(register int i=x;i<=y;i++)
#define rep1(i,x,y) for(register int i=x;i>=y;--i)
#define int long long
#define fire signed
#define il inline
template<class T> il void print(T x) {
if(x<0) printf("-"),x=-x;
if (x > 9) print(x / 10);
putchar(x % 10 + '0');
}
template<class T> il void in(T &x) {
x = 0; char ch = getchar();
int f = 1;
while (ch < '0' || ch > '9') {if(ch=='-') f = -1; ch = getchar(); }
while (ch >= '0' && ch <= '9') { x = (x << 3) + (x << 1) + (ch ^ 48); ch = getchar(); }
x *= f;
}
int T=1;
void solve() {
int n=300000,m=300000;
cout<<1<<' '<<n<<' '<<m<<endl;
int ff=rand()%n+1,ff1=rand()%n+1;
int kk=rand()%n+1;
while(kk==ff||kk==ff1) kk=rand()%n+1;
rep(i,1,n) {
if(i==ff) {
ff=0;
cout<<100000000<<' '<<1<<" ";
}else if(i==ff1) {
ff1=0;
cout<<100000000<<' '<<2<<" ";
}else cout<<100000000<<' '<<3<<" ";
}
rep(i,1,m-1) {
cout<<1<<' '<<kk<<' '<<1<<endl;
}
cout<<2<<' '<<982429<<endl;
}
fire main() {
srand(time(0));
while(T--) {
solve();
}
return false;
}