读书人

【2012年腾讯俱乐部ACM赛生手组1003】

发布时间: 2012-11-26 11:48:50 作者: rapoo

【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【2012年腾讯俱乐部ACM赛生手组1003】Fengsensei的DOTA Copy sample input to clipboard
110Sharpeye -5Rigwarl 20Mangix 20Bradwarden 10Gondar 15Zeus 5Morphling 5Sven 15Slithice 15Nortrom 5Sharpeye Rigwarl Mangix Bradwarden GondarZeus 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;}elsecout<<"NO"<<endl;}return 0;}

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

读书人网 >编程

热点推荐