石头,剪刀,布
时间: 1ms 内存:128M
描述:
OceanLight和xinge008在玩石头,剪刀,布的游戏,输的一方要罚做100道ACM题。比赛进行n局,获胜次数多的一方最终获胜。现给出n局两个人的手势,请输出输的一方。如果两人获胜次数相同,输出"Jiong!"
输入:
包含T(T<=30)组数据。每组第一行,一个整数n(n<=100),表示进行n局游戏。以下n行,每行两个字符串x,y。x表示OceanLight出的手势,y表示xinge008出的手势,x,y的值为"rock”,“scissors”, ”paper”分别表示石头剪刀布。
输出:
每组数据输出单独一行,表示输的一方或输出“Jiong!”表示平局。(注意大小写!)
示例输入:
3
1
rock scissors
2
paper paper
paper scissors
1
rock rock
示例输出:
xinge008
OceanLight
Jiong!
提示:
参考答案(内存最优[752]):
#include "stdio.h"
int main()
{
int n,i,t,a,b;
char x[10]={0},y[10]={0};
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
a=0;b=0;
for(i=0;i<n;i++)
{
scanf("%s",x);
scanf("%s",y);
if(x[0]==y[0])
continue;
if(x[0]=='r'&&y[0]=='s'||x[0]=='s'&&y[0]=='p'||x[0]=='p'&&y[0]=='r')
a++;
if(x[0]=='r'&&y[0]=='p'||x[0]=='p'&&y[0]=='s'||x[0]=='s'&&y[0]=='r')
b++;
}
if(a>b)
printf("xinge008\n");
if(a<b)
printf("OceanLight\n");
if(a==b)
printf("Jiong!\n");
}
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string.h>
#include <queue>
#include <cmath>
#include <cstdlib>
#include<stdio.h>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
char a[100],b[100],s=0,i;
scanf("%d",&n);
s=0;
for(i=0;i<n;i++)
{
scanf("%s %s",a,b);
if(strcmp(a,b)==0)
continue;
else if(strcmp(a,"rock")==0)
{
if(strcmp(b,"scissors")==0)
s++;
else
s--;
}
else if(strcmp(a,"scissors")==0)
{
if(strcmp(b,"paper")==0)
s++;
else
s--;
}
else if(strcmp(a,"paper")==0)
{
if(strcmp(b,"rock")==0)
s++;
else
s--;
}
}
if(s>0)
printf("xinge008\n");
if(s<0)
printf("OceanLight\n");
if(s==0)
printf("Jiong!\n");
}
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。