记录一下箬蒻终于动脑子写出来个第四题
int n; struct IN { int x; int tim;//最后一次1操作的时间 }a[MAXN]; int tag[MAXN];// signed main() { rd(n); for(int i=1;i<=n;i++) rd(a[i].x),a[i].tim=1; int q;rd(q); for(int i=1;i<=q;i++) { int op;rd(op); if(op==1) { int p,x;rd(p);rd(x); a[p].x=x,a[p].tim=i; tag[i]=-1; } else { int x;rd(x); tag[i]=x; } } for(int i=q-1;i>=1;i--) tag[i]=max(tag[i],tag[i+1]); for(int i=1;i<=n;i++) printf("%lld ",max(a[i].x,tag[a[i].tim])); endll; //stop; return 0; }