U386217 烽火连天
题目背景
O 国与 T 国开战了……
题目描述
O 国与 T 国的前线一共有 $n$ 个城市在进行争夺,最开始每个城市属于 O 国或 T 国,内部驻扎着 $a_i$ 个士兵, $0$ 号城市可以认为是 O 国的司令部,而 $n+1$ 号城市可以认为是 T 国的司令部,**其士兵数可认为是无限**。
而现在,前线的战况千变万化,O 国的指挥官要求你实时汇报战争中的情况。
现在,你一共有来自前线的若干条消息与指挥官的询问,总共 $m$ 个,你需要整理来自前线的信息并正确的回答指挥官的询问。
已知前线传来的信息一共有以下几种:
1,有 $i$ 个士兵从 $j$ 号城市行进向了 $k$ 号城市。
2,$i$ 号城市中的部队向 $j$ 号城市发动了进攻。
其中,进攻的规则如下:
1,当进攻部队的士兵数 $\ge$ 目标城市中的士兵数,那么该部队将以目标城市士兵数大小的损失占领目标城市,并将$\lfloor$ 剩余士兵数 $/2\rfloor$(向下取整)数量的士兵驻扎在目标城市,并使其余的士兵留守在原城市。
2,如果进攻部队的士兵数 $\lt$ 目标城市中的士兵数,那么该部队与目标城市中的部队将会折损 $\lfloor$ 进攻部队当前士兵数 $/2\rfloor$ 的士兵且该部队将退回原城市。
同时,指挥官需要你回答以下问题:
1,当前 $i$ 号城市到底由哪个国家占领。
2,当前 $i$ 号城市中驻扎的兵力是多少。
注意,因为前线可能传来错误信息,当你收到一条明显错误的信息时,你需要立刻告诉指挥官并无视该信息。
输入格式
第一行输入两个数 $n$ 和 $m$,代表信息如上。
接下来第二行输入 $n$ 个 $0$ 或 $1$,$0$ 表示该城市由 O 国占领,否则为 T 国占领。
第三行输入 $n$ 个数,其中第 $i$ 个数表示第 $i$ 个城市中驻扎的士兵数。
接下来 $m$ 行,你需要处理来自前线的信息与回答指挥官的询问。
```1 i j k``` 表示第一种信息。
```2 i j``` 表示第二种信息。
```3 i``` 表示第一种询问。
```4 i``` 表示第二种询问。
输出格式
对于每个询问,你需要给出对应的答案。
其中对于第一种询问,回答 "YES" 表示属于 O 国,回答 "NO" 。当某个信息被认定为错误时,你需要立即输出“WRONG!”。
**因为题意描述错误,已修正,特地给各位多加1分。**
说明/提示
对于 $100\%$的数据,1$\le n,m\le10^5$。
注:对于一个城市的部队,向自己运输不超过自身部队中士兵数目的士兵是正确的。
还有,写了个 T 国城市不能给 T 国城市运兵的同学什么意思。
温馨的,所有可能的情报错误:
- 进行操作 $1$ 时 j 城市事实上士兵没 i 那么多。
- 进行操作 $1$ 时,j 城市和 k 城市不属于同一个国家。
- 进行操作 $2$ 时,i 城市和 j 城市属于同一个国家
温馨的,一些提示:
- 所有查询操作都不会查找两国的司令部。
- 如果您认为操作没有任何问题,请尝试在每次操作前将两国司令部的士兵数设置为 $2100000000$,尽管这不一定会有用。