NC25256. 张老师的游戏
描述
输入描述
第一行一个整数n(1<=n<=100,000)
第二行n个整数,分别代表每一堆石头的个数,保证所有数据为小于等于109的正整数
输出描述
输出一行,Win或者Lose,表示张老师能否获得胜利
示例1
输入:
3 2 2 1
输出:
Lose
示例2
输入:
2 2 9
输出:
Win
C++14(g++5.4) 解法, 执行用时: 35ms, 内存消耗: 1424K, 提交时间: 2019-04-23 18:46:20
#include <bits/stdc++.h> using namespace std; int n,i,x,ans; int main(){ scanf("%d",&n); for (i=1;i<=n;++i){ scanf("%d",&x); ans^=__builtin_ctz(x); } puts(ans?"Win":"Lose"); return 0; }
C++(clang++11) 解法, 执行用时: 44ms, 内存消耗: 388K, 提交时间: 2020-11-20 15:52:21
#include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; int a; int ans=0; for(int i=0;i<n;i++){ cin>>a; ans^=__builtin_ctz(a); } cout<<(ans?"Win":"Lose"); return 0; }
Python3 解法, 执行用时: 164ms, 内存消耗: 12712K, 提交时间: 2023-06-11 19:53:27
ans = 0 input() for x in map(int, input().split()): ans ^= len(bin(x & (-x))) - 3 print("Win" if ans else "Lose")