ZOJ 3220 Killing Streak(简单模拟)

来源:互联网 发布:c语言else if语句用法 编辑:程序博客网 时间:2024/06/15 02:32

首先按照击杀时间排个序再照着题目模拟就可以了.

#include <iostream>#include <cstdio>#include <memory.h>#include <map>#include <algorithm>#include <string>using namespace std;struct killing{char p1[30],p2[30];int tim;bool operator<(const killing &rhs)const{return tim<rhs.tim;}}ks[101];struct hero{int lKT,acc,kwd;};map<string,hero>stds;char buf[102];int main(){int t;scanf("%d\n",&t);while (t--){stds.clear();int i=0;memset(ks,0,sizeof(ks));while (gets(buf)&&strcmp(buf,"#")){int m=0,s=0,tim=0;sscanf(buf,"%d:%d %s kills %s",&m,&s,ks[i].p1,ks[i].p2);tim=m*60+s;ks[i++].tim=m*60+s;}sort(ks,ks+i);for (int j=0;j<i;++j){hero &h1=stds[ks[j].p1],&h2=stds[ks[j].p2];char *p1=ks[j].p1;int tim=ks[j].tim;if(tim-h1.lKT<=14){h1.acc++;}else{h1.acc=1;}h1.lKT=tim;h1.kwd++;h2.kwd=0;if(j==0){printf("%s just drew First Blood!\n",p1);}if(h1.kwd==3){printf("%s has a Killing Spree!\n",p1);}else if(h1.kwd==4){printf("%s is Dominating!\n",p1);}else if(h1.kwd==5){printf("%s has a Mega Kill!\n",p1);}else if(h1.kwd==6){printf("%s is Unstoppable!\n",p1);}else if(h1.kwd==7){printf("%s is Wicked Sick!\n",p1);}else if(h1.kwd==8){printf("%s has a Monster Kill!!!\n",p1);}else if(h1.kwd==9){printf("%s is Godlike!\n",p1);}else if(h1.kwd>=10){printf("%s is Beyond Godlike! Somebody kill him!!\n",p1);}if(h1.acc==2){printf("%s just got a Double Kill!\n",p1);}else if(h1.acc>=3){printf("%s just got a Triple Kill!\n",p1);}}printf("\n");}return 0;}


原创粉丝点击