问题1520--小P的国际象棋

1520: 小P的国际象棋

时间限制: 1 Sec  内存限制: 512 MB
提交: 57  解决: 5
[状态] [讨论版] [提交] [命题人:]
题目描述

小P迷上了一种新国际象棋,这种国际象棋的棋盘是两个序列,一个序列是自己的部分,另一个序列是对手的。在序列中,每一格都是一个士兵,士兵们的初始战斗力不同。 在新国际象棋种获胜方式是这样的:有q次对决,每次对决双方序列的两个区间,如果小P在这个区间内的士气和大于对手在这个区间内的士气和,那么小P需要说出他在这个区间内的士气和。如果他的士气和大于对手的士气和,那么他能得一分。在q次对决之后,双方得分较多的为获胜方。

在新国际象棋种有3种可以影响战局的操作:

魔术师:通过膜法将自己棋盘部分的第i个士兵与第j个士兵交换。 音乐家:通过高昂的歌声使自己棋盘部分的lr的区间内士兵士气值加dis 盗贼:盗取对手第i个士兵的士气值,并把它的士气值加到己方第i个士兵上。

小P带着自己的好友小Y来玩新国际象棋。

输入

第一行两个整数,n,m代表棋盘是2*n的,影响战局的操作数与对决数之和为m个

接下来两行,每行n个整数,分别代表自己和对手的初始士气值。

接下来m行,每行是下面有以下几种情况:

mig N x y:"N"将自己棋盘部分的第x个士兵与第y个士兵交换,例如mig Y 2 5 

mus N x y z:"N"将自己棋盘部分的xy的区间内士兵士气值加z,例如mus Y 1 3 2 

sto N x y:"N"盗取对手第x个士兵的士气值,并把它的士气值加到己方第y个士兵上,例如sto P 1 5 

pk x y:对决双方区间[x,y]

输出

对于每次对决都出一次。

每输出一次包含两部分: 第一部分表示获胜的是小P还是小Y,若是小P则输出P,若是小Y则输出Y 第二部分输出获胜方的区间和。 两个部分输出以一个空格隔开,例如Y 7

最后再输出最终获胜方,输出获胜者"is winner!",例如"little Y is winner!"

如果双方平局,则输出"five five open"。

样例输入 Copy
5 5
1 3 2 5 1
1 3 2 5 1
mig P 3 2
mus Y 1 4 2
pk 1 3
sto P 1 5
pk 2 5
样例输出 Copy
Y 12
Y 17
little Y is winner!
提示
样例二输入
5 10
33702 7831 40840 14560 27164
13691 20836 5480 2948 11791
sto P 5 1
pk 2 5
pk 1 5
mig P 5 3
sto P 4 1
mig Y 2 5
mus P 2 3 148
sto P 4 3
pk 1 5
pk 1 1
样例二输出
P 90395
P 135888
P 139132
P 48441
little P is winner!




对于百分之三十的数据: 1<=n,m<=1000。
对于另外百分之二十的数据: 没有sto和mig操作。
对于全部数据:1<=n,m<=200005。


来源/分类