假设有两个人A和B ,最初两个人手中各有N张纸牌,并且顺序固定,两个人只能按照顺序出牌,A先出。
然后两个人开始轮流放牌,放置的牌从左到右,排成一行
当某个人牌的数字在牌桌上出现过,他就可以把这两张以及两张之间的牌收走,作为赢的筹码,同时需要放一张牌。
如果某一方手中无牌,则直接跳过,由对方放牌
当两个人手中都没有牌的时候,游戏结束
游戏结束后,若还有剩余的牌,则A收走奇数的牌为筹码,B收走偶数的牌为筹码,最后筹码多的人获胜,筹码一样多则平局。
输入描述:
第一行:一个N(牌数)
第二行:A的牌
第三行:B的牌
其中1<=N<=100,
1<ai,bi<=13
1<=i<=N
输出两个整数,代表A和B的筹码个数
package shujulianbiao;
import java.util.Scanner;
public class shoumai {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] duoduoji = new int[N];
for (int i = 0; i < N; i++) {
duoduoji[i] = sc.nextInt();
}
int[] duoduoya = new int[N];
for (int i = 0; i < N; i++) {
duoduoya[i] = sc.nextInt();
}
int[] nums = new int[14];
int flag = 1;
int a = 0;
int i = 0, j = 0;
int ji = 0, ya = 0;
while (i < N && j < N) {
if (flag == 1) {
nums[a] = duoduoji[i];
i++;
for (int k = 0; k < a; k++) {
if (nums[k] == nums[a]) {
ji += a - k + 1;
a = k - 1;
flag *= -1;
break;
}
}
a++;
} else if (flag == -1) {
nums[a] = duoduoya[j];
j++;
for (int k = 0; k < a; k++) {
if (nums[k] == nums[a]) {
ya += a - k + 1;
a = k - 1;
flag *= -1;
break;
}
}
a++;
}
flag *= -1;
}
for (int k = 0; k < a; k++) {
if (nums[k] % 2 == 1)
ji++;
else
ya++;
}
ji += N - i;
ya += N - j;
System.out.println(ji);
System.out.println(ya);
}
}
输出结果