列表

详情


NC50615. 取石子游戏 2

描述

有一种有趣的游戏,玩法如下:
玩家:2人;
道具:N堆石子,每堆石子的数量分别为X_1,X_2,...,X_n
规则:
  1. 游戏双方轮流取石子;
  2. 每人每次选一堆石子,并从中取走若干颗石子(至少取1颗);
  3. 所有石子被取完,则游戏结束;
  4. 如果轮到某人取时已没有石子可取,那此人算负。
假如两个游戏玩家都非常聪明,问谁胜谁负?

输入描述

第一行,一个整数N;
第二行,N个空格间隔的整数X_i,表示每一堆石子的颗数。

输出描述

输出仅一行,一个整数,若先手获胜输出win,后手获胜输出lose

示例1

输入:

4
7 12 9 15

输出:

win

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++11(clang++ 3.9) 解法, 执行用时: 10ms, 内存消耗: 620K, 提交时间: 2020-06-02 20:48:08

#include<cstdio>
int n;
int x,ans;
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	scanf("%d",&x),ans^=x;
	puts(ans==0?"lose":"win");
}

pypy3 解法, 执行用时: 142ms, 内存消耗: 28124K, 提交时间: 2022-05-20 21:21:06

n = int(input())
arr = map(int, input().split())

res = 0
for x in arr:
    res ^= x

if res:
    print('win')
else:
    print('lose')

Python3 解法, 执行用时: 52ms, 内存消耗: 6828K, 提交时间: 2022-08-16 10:03:47

a = 0
input()
for i in input().split():
    a ^= int(i)
print('win'if a else 'lose')

上一题