Codeforces 106A:Card Game

题目链接http://codeforces.com/contest/106/problem/A

题意:一套牌有S、H、D、C四种花色,按等级分成6、7、8、9、T、J、Q、K、A。每次选出一个花色作为无敌的花色(属于这个花色的牌可以打败所有不属于这个花色的牌,无视等级)。

第一张牌打败第二张牌的情况有:

1。第一张牌是无敌的花色,第二张牌不是

2。第一张牌和第二张牌的花色相同,并且第一张牌的等级高于第二张牌

其余的所有情况均视为第一张牌不能打败第二张牌(包括第一张牌的花色不同于第二张牌且第一张牌不是无敌的

如果第一张牌能够打败第二张牌,输出YES,否则输出NO。

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <math.h>
#include <limits.h>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#define ll long long
#define ms(a) memset(a,0,sizeof(a))
#define pi acos(-1.0)
#define INF 0x3f3f3f3f
const double E=exp(1);
const int maxn=1e6+10;
using namespace std;
char c1[3],c2[3];
int main(int argc, char const *argv[])
{
	ios::sync_with_stdio(false);
	map<char,int>mmp;
	mmp.clear();
	mmp['6']=1;
	mmp['7']=2;
	mmp['8']=3;
	mmp['9']=4;
	mmp['T']=5;
	mmp['J']=6;
	mmp['Q']=7;
	mmp['K']=8;
	mmp['A']=9;
	mmp['S']=11;
	mmp['H']=12;
	mmp['D']=13;
	mmp['C']=14;
	char c;
	cin>>c;
	cin>>c1>>c2;
	int flag=0;
	if(c1[1]==c)
		flag+=1;
	if(c2[1]==c)
		flag+=2;
	if(flag==1)
		cout<<"YES"<<endl;
	else
	{
		if(c1[1]==c2[1])
		{
			if(mmp[c1[0]]>mmp[c2[0]])
				cout<<"YES"<<endl;
			else
				cout<<"NO"<<endl;
		}
		else
			cout<<"NO"<<endl;

	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/wang_123_zy/article/details/81135102