按照题意进行模拟题目中描述的所有情况即可
时间复杂度:O(n)
###cpp
#include <bits/stdc++.h>
using namespace std;
小红给自己的队伍安排训练,分为红队和蓝队。但是每个人都不知道其他人是哪个队伍的。
接下来小红安排这些人进行战斗,第 i 个人的战斗力是 ai 。
两个人战斗时,每个人可以选择公开身份给对方,或者隐藏身份。
如果两个人相互攻击,如果他们战斗力相同,则他们都失败了。否则战斗力高的一方胜利,战斗力低的一方失败。
你需要注意的是,一个已经失败的人参加之后的战斗,对应的战斗回合跳过。
现在小红想问你,按照小红给定的顺序进行战斗,最后有哪些人是 winner 还是 loser 。
如果一个人参与的所有战斗都是胜利的,则他是 winner ,否则他是 loser 。
第一行,两个正整数 n 和 m(1≤n,m≤105) ,分别表示有 n 个人,m 轮战斗。
接下来的 n 行,第 i 行一个字符串 si 表示第 i 个人所在队伍,si 为 R 表示第 i 个人是红队选手,为 B 表示第 i 个人是蓝队选手, ai(1≤ai≤109) 表示第 i 个人的战斗力。
接下来的 m 行,第 i 行先是两个整数 x 和 y(1≤x,y≤n) ,表示小红第 i 个回合安排第 x 个人和第 y 个人战斗,接下来两个字符 c1,c2 表示 x,y 所在的队伍。
c1 为 Y 表示 x 公开身份,为 N 表示 x 隐藏身份。c2 为 Y 表示 y 公开身份,为 N 表示 y 隐藏身份。
一行字符串,第 i 个字符为 W 表示第 i 个人是 winner ,第 i 个字符为 L 表示第 i 个人是 loser 。
输入
4 4
R 8
B 1
R 9
B 10
1 2 N N
2 3 N Y
3 4 Y N
1 3 Y N
输出
WWLW
说明
第一轮战斗,双方都不公开身份,都不发动攻击。
第二轮战斗,3 号向 2 号公开身份,2 号是蓝色选手,其战斗力低于 3 号红色选手的战斗力,不发动攻击。
第三轮战斗,3 号向 4 号公开身份,4 号蓝色选手,直接发动攻击,其战斗力高于 3 号红色选手的战斗力,3 号失败,4 号胜利。
第四轮战斗,1 号向 3 号公开身份,3 号红色选手发现 1 号也是红色选手,不发动攻击。
最后 1,2,4 是 winner ,3 是 loser