int n; int ap[101010],at[101010],ar[101010],ai[101010],alive[101010]; bool cmp(int a,int b){ return ap[a]>ap[b]?:ap[a]at[b]?:at[a]ar[b]; } { rd(n,(ap,at,ar)(n)); ai[0..n]=(0..); std::sort(ai,ai+n,cmp); segtree t; t.malloc(1d4+1,1); for(int j=0;j-ar[i]){ alive[i]=1; t.change(at[i],at[i]+1,-ar[i]-1); } } rep(i,n)if(alive[i])wt(i+1); }