记录一下箬蒻终于动脑子写出来个第四题
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;
}