CF1198B Welfare State

题目描述

有一个国家有 $n$ 个公民,第 $i$ 个公民初始拥有 $a_i$ 元钱。政府严格控制公民的财富。每当某个公民消费或赚取金钱时,必须向社会服务部门提交一份收据,注明其当前拥有的金额。 有时政府会向贫困公民发放补助:所有拥有的钱严格少于 $x$ 的公民都会获得补助,使得他们的余额恰好变为 $x$。在这种情况下,公民无需提交收据。 你已知每个公民的初始财富以及所有事件(收据和补助)的日志。请还原所有事件后每个公民的余额。

输入格式

第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^{5}$),表示公民人数。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \le a_i \le 10^9$),表示每个公民的初始余额。 第三行包含一个整数 $q$($1 \le q \le 2 \cdot 10^{5}$),表示事件的数量。 接下来的 $q$ 行,每行描述一个事件,按时间顺序给出。 每个事件要么是 $1\ p\ x$($1 \le p \le n$,$0 \le x \le 10^9$),表示第 $p$ 个公民提交收据,其余额变为 $x$;要么是 $2\ x$($0 \le x \le 10^9$),表示一次参数为 $x$ 的补助。

输出格式

输出 $n$ 个整数,表示所有事件结束后每个公民的余额。

说明/提示

在第一个样例中,余额变化如下:$1\ 2\ 3\ 4 \rightarrow 3\ 3\ 3\ 4 \rightarrow 3\ 2\ 3\ 4 \rightarrow 3\ 2\ 3\ 4$。 在第二个样例中,余额变化如下:$3\ 50\ 2\ 1\ 10 \rightarrow 3\ 0\ 2\ 1\ 10 \rightarrow 8\ 8\ 8\ 8\ 10 \rightarrow 8\ 8\ 20\ 8\ 10$。 由 ChatGPT 4.1 翻译