计软对抗赛之 爱上CF

来源:互联网 发布:福师大网络与继续教育 编辑:程序博客网 时间:2024/04/29 04:13

爱上CF

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

CF,codeforces不是Crossfire。身为一个Acmer,RE大神与Soaring大神最喜欢做每五天一次的CF,从11:30到1:30,然后和逗比学长们一起等着跑数据等到两点半,然后再一起嘲笑一坨学长和柴爷,实在是人生一大快事。
但是Triple_S队的另一员——Winddreams,竟然还不会算CF的单局积分。实在是略萌啊。身为队长的RE大神只能把CF的详细规则再给Winddreams讲一遍了。
CF中共A,B,C,D,E五道题,其初始分分别为500,1000,1500,2000,2500。
比赛共两个小时,每过一分钟每道题目的分数分别下降2,4,8,16,32分。例如你在00:08的时候提交A题,就会获得484分。
比赛中对于不成功的提交(统称为WA)将扣掉该题50分;每道题的分数是单独的,如果没有AC不管这道题WA几次,不会扣总分。而且每道题的最低得分为150分,当分数降低至150分时,不在进行分数削减。
比赛中还有一种叫做HACK的玩法,就是在锁定自己的题目代码后,你可以查看他人的代码,如果别人的代码有漏洞你可以出一组测试数据证明他是错的,如果你成功了(Successful Hack)你讲获得100分,如果你失败了(Unsuccessful Hack)你将被扣50分。同理,你也可以被Hack如果你被Hack成功了(Hack)将视为该题WA。
由于最近RE大神和Soaring要忙一下补觉的问题,所以,需要你来为Winddreams写一个程序来计算得分情况。

输入

多组输入。输入一个T(T<=50)表示有T个操作,在接下来的T行里,每行输入三个个变量(中间用空格隔开),分别是时间t(XX:XX),题目No(A,B,C,D,E)以及题目返回结果E(WA ,AC,Hack,Successful Hack,Unsuccessful Hack)。

输出

最终得分。

示例输入

1900:03 A AC00:10 B WA00:12 B WA00:13 B AC00:30 C WA00:40 B Hack00:45 B WA00:45 B WA00:46 B WA00:47 B WA00:48 B WA00:48 B WA00:50 B WA00:54 B WA00:55 B WA00:57 B WA00:59 B AC01:10 A Successful Hack01:49 B Unsuccessful Hack

示例输出

694
这道题HACK 算WA一次  然后在重新记分  比赛是没理解好这一条,就没AC  最后就是要注意输入了。。 下为AC代码
#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>using namespace std;int main(){    int n;    while(~scanf("%d",&n))    {    int sum=0;    char aa[50];    char f;    int t3;    int ta=0,tb=0,tc=0,td=0,te=0;    int sa=0,sb=0,sc=0,sd=0,se=0;    int q1=0,q2=0;    int a=500,b=1000,c=1500,d=2000,e=2500;    while(n--)    {        scanf("%d:%d %c%*c",&q1,&q2,&f);        gets(aa);        if(strcmp(aa,"AC")==0)        {            t3=q1*60+q2;            if(f=='A')            {                a=a-2*t3-50*ta;                if(a<150)                    a=150;                sa=1;            }            else  if(f=='B')            {                b=b-4*t3-50*tb;                if(b<150)                    b=150;                sb=1;            }            else if(f=='C')            {                c=c-8*t3-50*tc;                if(c<150)                    c=150;                sc=1;            }            else if(f=='D')            {                d=d-16*t3-50*td;                if(d<150)                    d=150;                sd=1;            }            else if(f=='E')            {                e=e-32*t3-50*te;                if(e<150)                    e=150;                se=1;            }        }        else if(strcmp(aa,"WA")==0)        {            if(f=='A')                ta++;            else if(f=='B')                tb++;            else if(f=='C')                tc++;            else if(f=='D')                td++;            else if(f=='E')                te++;        }        else if(strcmp(aa,"Hack")==0)        {            if(f=='A')            {                ta++;                a=500;                sa=0;            }            else if(f=='B')            {                tb++;                b=1000;                sb=0;            }            else if(f=='C')            {                tc++;                c=1500;                sc=0;            }            else if(f=='D')            {                td++;                d=2000;                sd=0;            }            else if(f=='E')            {                te++;                e=1000;                se=0;            }        }        else if(strcmp(aa,"Successful Hack")==0)        {            if(f=='A')                a+=100;            else if(f=='B')                b+=100;            else if(f=='C')                c+=100;            else if(f=='D')                d+=100;            else if(f=='E')                e+=100;        }        else if(strcmp(aa,"Unsuccessful Hack")==0)        {            if(f=='A')            {                if(a<150)                    a=150;                a-=50;            }            else if(f=='B')            {                if(b<150)                    b=150;                b-=50;            }            else if(f=='C')            {                c-=50;                if(c<150)                    c=150;            }            else if(f=='D')            {                d-=50;                if(d<150)                    d=150;            }            else if(f=='E')            {                e-=50;                if(e<150)                    e=150;            }        }    }    if(sa) sum+=a;    if(sb) sum+=b;    if(sc) sum+=c;    if(sd) sum+=d;    if(se) sum+=e;    printf("%d\n",sum);          }          return 0;}


0 0
原创粉丝点击