NC21750. Ricky’s RealDan’s Ricky
描述
The 2019 is coming!Ricky 和 RealDan为了庆祝2018一年的成果,准备去大吃一顿,然而 Ricky 想吃火锅, RealDan 想吃海鲜。为了解决吃什么的难题, 他们向聪明的神秘人(出题人)寻求帮助,神秘人则给他们出了这样一个问题:
现在有 n 个娃娃机,第i(1 <= i <= n) 个娃娃机中有 a[i] 个娃娃。
规则如下:
Ricky 和 RealDan 轮流抓娃娃,
Ricky 每轮只能从其中一个娃娃机中抓走偶数个娃娃。
RealDan 每轮只能从其中一个娃娃机中抓走奇数个娃娃。
每人每轮至少抓走一个娃娃(他们都超级厉害), Ricky 先开始抓。
他们在神秘人的教导下,都已经变得非常聪明。最后谁抓不了娃娃,谁就被视为 loser,并且还要把自己抓到的娃娃送给对方,loser也必须去Winner喜欢的地方吃饭。
输入描述
第一行一个t,表示t组数据。
每组数据有两行:
第一行一个n(1 <= n <= 100000)代表n个娃娃机
下一行有n个数字,代表每一个娃娃机中的娃娃数量a[i] (1 <= a[i] <= 1e9)
输出描述
如果最后Ricky获胜,则输出“Ricky is Winner”(不包括双引号),反之则输出“RealDan is Winner”(不包括双引号)。
示例1
输入:
1 2 1 2
输出:
RealDan is Winner
C(clang 3.9) 解法, 执行用时: 72ms, 内存消耗: 620K, 提交时间: 2018-12-30 15:34:50
#include<stdio.h> int main() { int n,i,a[100001]; int t; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a[i]); } if(n==1&&a[1]%2==0) { printf("Ricky is Winner\n"); }else printf("RealDan is Winner\n"); } return 0; }
Python3(3.5.2) 解法, 执行用时: 27ms, 内存消耗: 5900K, 提交时间: 2020-04-24 22:37:25
t=int(input()) for i in range(t): n=int(input()) num=input() if n==1: num=int(num) if num%2==0: print('Ricky is Winner') else: print('RealDan is Winner') else: print('RealDan is Winner')
C++11(clang++ 3.9) 解法, 执行用时: 73ms, 内存消耗: 736K, 提交时间: 2020-02-27 13:56:56
#include<cstdio> int main() { int t,n,a[100005],i; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); if(n==1&&a[1]%2==0) printf("Ricky is Winner\n"); else printf("RealDan is Winner\n"); } }
C++14(g++5.4) 解法, 执行用时: 184ms, 内存消耗: 3168K, 提交时间: 2018-12-31 21:43:18
#include<bits/stdc++.h> using namespace std;int main(){int t;cin>>t;while(t--){int x,p;cin>>x;for(int i=0;i<x;i++)cin>>p;if(x==1&&(p%2==0))cout<<"Ricky is Winner"<<endl;else cout<<"RealDan is Winner"<<endl;}}