打扑克
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
2
-
描述
-
最近zmh喜欢上了打扑克,有一天他又找同学打扑克规则如下:2人各有m张牌轮流出牌(打出的牌不归任何人所有), 遇到出的牌和前面有相同,则这之间的排归出牌人,收回牌不打出 ,zmh先出牌,最后拥有牌多者赢(牌数相等也是zmh赢),聪明的zmh知道了两人牌排列的顺序,他想知道自己能不能赢,可他现在有事,你能帮他吗?
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Scanner;
public class Main {//有点超时了,竟然也能AC
public static void main(String[] args) {
Scanner input=new Scanner(new InputStreamReader(System.in));
int N=input.nextInt();
while(N-->0){
int n=input.nextInt();
int a[]=new int[n];
int b[]=new int[n];
for(int i=0;i<n;i++){
a[i]=input.nextInt();
}
for(int i=0;i<n;i++){
b[i]=input.nextInt();
}
LinkedList<Integer> list=new LinkedList<Integer>();
int zmh=0;
int sum=0;
for(int i=0;i<n;i++){
if(list.contains(a[i])){
int c=list.indexOf(a[i]);
zmh+=list.size()-c+2;
while(list.size()!=c)
list.remove(c);
}
else
list.add(a[i]);
if(list.contains(b[i])){
int c=list.indexOf(b[i]);
sum+=list.size()-c+2;
while(list.size()!=c)
list.remove(c);
}
else
list.add(b[i]);
}
if(zmh>=sum)
System.out.println("Yes");
else
System.out.println("No");
}
}
}