题解 CF409A 【The Great Game】

题目传送门

思路:

  1. 首先我们定义(2)个字符串,分别存放 TEAM 1 与 TEAM 2 的出招顺序。接着再定义(2)个变量,存放 TEAM 1 与 TEAM 2 的分数。
	string s1;
	string s2;
   cin>>s1>>s2;//输入s1和s2
	int score1=0,score2=0;
  1. 定义一个字符串长度变量len,因为s1s2的长度必定相等,所以长度既可以是s1的长度也可以是s2的长度。
	int len=s1.size();
  1. 开始循环,定义(2)个变量,判断它们出招的类别,再进行判断。
	int a1,a2;//1是剪刀,2是石头,3是布 
	if(s1[i]=='8' && s1[i+1]=='<')a1=1;
	if(s1[i]=='(' && s1[i+1]==')')a1=2;
	if(s1[i]=='[' && s1[i+1]==']')a1=3;
	if(s2[i]=='8' && s2[i+1]=='<')a2=1;
	if(s2[i]=='(' && s2[i+1]==')')a2=2;
	if(s2[i]=='[' && s2[i+1]==']')a2=3;
  1. 进行比较,统计分数:平局各不加分,否则胜者加(1)分。
	if(a1==1)
	{
		if(a2==2)score2++;
		if(a2==3)score1++;
	}
	if(a1==2)
	{
		if(a2==1)score1++;
		if(a2==3)score2++;
	}
	if(a1==3)
	{
		if(a2==1)score2++;
		if(a2==2)score1++;
	}
  1. 判断谁的分数高,进行输出即可。
	if(score2==score1)cout<<"TIE";
	if(score1>score2)cout<<"TEAM 1 WINS";
	if(score2>score1)cout<<"TEAM 2 WINS"; 

代码实现:

#include <bits/stdc++.h>
using namespace std;
string s1;
string s2; 
int main()
{
	cin>>s1>>s2;
	int score1=0,score2=0;
	int len=s1.size();
	for(int i=0;i<len;i+=2)
	{
		int a1,a2;//1是剪刀,2是石头,3是布 
		if(s1[i]=='8' && s1[i+1]=='<')a1=1;
		if(s1[i]=='(' && s1[i+1]==')')a1=2;
		if(s1[i]=='[' && s1[i+1]==']')a1=3;
		if(s2[i]=='8' && s2[i+1]=='<')a2=1;
		if(s2[i]=='(' && s2[i+1]==')')a2=2;
		if(s2[i]=='[' && s2[i+1]==']')a2=3;
		if(a1==1)
		{
			if(a2==2)score2++;
			if(a2==3)score1++;
		}
		if(a1==2)
		{
			if(a2==1)score1++;
			if(a2==3)score2++;
		}
		if(a1==3)
		{
			if(a2==1)score2++;
			if(a2==2)score1++;
		}
	}
	if(score2==score1)cout<<"TIE";
	if(score1>score2)cout<<"TEAM 1 WINS";
	if(score2>score1)cout<<"TEAM 2 WINS"; 
	return 0;
}
原文地址:https://www.cnblogs.com/tearing/p/12371868.html