【2012年腾讯俱乐部ACM赛新手组1003】Fengsensei的DOTA

字符串模拟,用STRING类的话会非常的简单

Description

   众所周知,Fengsensei是每天泡在图书馆的一个学霸,但是Fengsensei偶尔也会玩游戏来放松一下自己,Fengsensei最近迷上了DOTA,我们将模型简化如下,DOTA游戏分为两个阵营,天灾军团和近卫军团,Fengsensei出于奇怪的正义感每次都在近卫军团里,每次双方都会从一堆英雄中选出5名英雄来作战,每个英雄在游戏中只会出现一个,Fengsensei发现他能够知道每名英雄的战斗力,并且总是英雄战斗力之和高的一方会获胜,如果战斗力之和相等,Fengsensei所在的一方会获胜,现在,给你一个英雄的列表和近卫天灾的5名英雄,你能帮Fengsensei判断最终哪方会胜利么。

Input

   输入第一行一个整数T,代表测试数据的组数
         接下来T组测试数据 
         每组测试数据第一行一个整数M(10<=M<100) 代表英雄的总数。
         接下来M行,每行为一个字符串s和一个整数Ai(|Ai|<100),其中字符串s仅由大写字母和小写字母组成,长度不超过30,代表英雄的名字,Ai代表英雄的战斗力。
         接下来一行为5个字符串s11,s12,s13,s14,s15。代表近卫军团选择的5个英雄。
         接下来一行为5个字符串s21,s22,s23,s24,s25。代表天灾军团选择的5个英雄。

Output

 对于每组测试数据,输出一行,如果Fengsensei能够获胜 输出"YES",否则输出"NO"

Sample Input
 Copy sample input to clipboard
1
10
Sharpeye -5
Rigwarl 20
Mangix 20
Bradwarden 10
Gondar 15
Zeus 5
Morphling 5
Sven 15
Slithice 15
Nortrom 5
Sharpeye Rigwarl Mangix Bradwarden Gondar
Zeus Morphling Sven Slithice Nortrom
Sample Output
YES

#include <iostream>
#include <string>
using namespace std;
class hero
{
	public:
	string heroname;
	int power;
};

hero pool[150];

int main()
{
	int testcase;
	cin>>testcase;
	while(testcase--)
	{
		int heronum;
		int nep=0,udp=0;
		cin>>heronum;
		for(int i=0;i<heronum;i++)
		{
			cin>>pool[i].heroname>>pool[i].power;
		}
		
		string ne[5];
		string ud[5];
		for(int i=0;i<5;i++)
		{
			cin>>ne[i];
		}
		for(int i=0;i<5;i++)
		{
			cin>>ud[i];
		}
		
		for(int i=0;i<5;i++)
		{
			for(int j=0;j<heronum;j++)
			{
				if(ne[i]==pool[j].heroname)
				{
					nep+=pool[j].power;
				}
				if(ud[i]==pool[j].heroname)
				{
					udp+=pool[j].power;
				}
				
			}
		}
		if(nep>=udp)
		{
			cout<<"YES"<<endl;
		}
		else
			cout<<"NO"<<endl;
		
	}


	return 0;
}

1AC,然后我上课去了。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值