问题描述 |
---|
ZSW 是一个无聊的少年,某天他心血来潮下载了红色警戒-共和国之辉,他听说解放军十分强大,所以想试试战斗力,于是他设定了一个弱智的电脑对手。 ZSW 将训练的解放军随机分配成 n 个小分队,按顺时针方向在敌人的阵地外围包围了个圈,编号为 1 ~ n,每支分队的人数分别为 a1,a2 … an。 与此同时,敌人的防御工事将对解放军进行攻击,当某支小队被歼灭后,后面分队的编号将依次前调。 请你编写一个程序帮无聊的 ZSW 处理数据,便于派遣和查询各个小队的人数。 |
输入描述 |
第一行是两个正整数 n 和 m,分别表示小队的数量和 ZSW 操作的次数。 第二行是 n 个正整数 a1,a2 … an 分别代表每个小队的人数。 接下来 m 行,每行是一个如下操作: Die i:第 i 支小分队被歼灭。 Adjust i j x:从第 i 支小分队掉出 x 名解放军到与之顺时针方向相距 j 的小分队。当调离后第 i 支小分队人数为 0 时,效果等同于被歼灭。 Query i:为了统筹大局,ZSW 需要实时了解兵力分布情况,于是需要不断查询某个分队 i 的兵力。 保证: 1、出现的所有数字都是不大于 1000 的正整数 2、被调离的小队至少有 x 名解放军 注意: Adjust i j x,其中的 j 可以大于当前的小队总数,因为小队围了个圈,所以相距的本意是从 i 开始往后数 j 个。 Query i,i 可能大于当前小队总数,此时大于的部分也应当是循环计数,例如当前小队数量为 5,那么第 8 支小队其实就是第 3 支小队。 |
输出描述 |
对于每一次 Query i 操作,你都需要输出第 i 支小分队的人数,然后换行。 |
样例输入复制样例 |
4 10 2 4 5 8 Adjust 1 2 1 Query 3 Adjust 1 3 1 Query 3 Adjust 2 10 1 Query 3 Adjust 2 4 5 Query 1 Die 1 Query 1 |
样例输出 |
6 9 10 9 10 |
相关 |