UVA 10258 Contest Scoreboard

来源:互联网 发布:base64 python实现 编辑:程序博客网 时间:2024/05/22 14:21
#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>using namespace std;typedef struct person{    int number,solve,issub;    int time[15],totaltime;} person;int main(){    /*freopen("in.txt","r",stdin);*/    int cas;    person p[110];    scanf("%d\n",&cas);    while(cas--)    {        for(int i=0; i<110; i++)        {            for(int j=0; j<15; j++)                p[i].time[j]=0;            p[i].solve=0;            p[i].issub=0;        }        int a,b,c;        char ch;        char str[50];       while(fgets(str,50,stdin)!=NULL)        {            if(str[0]=='\n') break;            int num=0,i;            for(i=0; str[i]!='\0'&&str[i]!=' '; i++)            {                if(str[i]>='0'&&str[i]<='9')                    num=num*10+str[i]-'0';            }            a=num;            num=0;            for(i++; str[i]!='\0'&&str[i]!=' '; i++)            {                if(str[i]>='0'&&str[i]<='9')                    num=num*10+str[i]-'0';            }            b=num;            num=0;            for(i++; str[i]!='\0'&&str[i]!=' '; i++)            {                if(str[i]>='0'&&str[i]<='9')                    num=num*10+str[i]-'0';            }            c=num;            ch=str[i+1];            p[a].issub=1;            if(ch=='C')            {                if(p[a].time[b]==0)                {                    p[a].solve++;                    p[a].time[b]+=c;                }                else  if(p[a].time[b]<0)                {                    p[a].solve++;                    p[a].time[b]=p[a].time[b]*-1+c;                }            }            else if(ch=='I')            {                if(p[a].time[b]<=0)                    p[a].time[b]-=20;            }        }        for(int i=0; i<110; i++)        {            p[i].number=i;            p[i].totaltime=0;            for(int j=0; j<15; j++)            {                if(p[i].time[j]>0)                    p[i].totaltime+=p[i].time[j];            }        }        for(int i=0; i<110; i++)        {            for(int j=i+1; j<110; j++)            {                if(p[i].solve<p[j].solve)                {                    person temp;                    temp=p[i];                    p[i]=p[j];                    p[j]=temp;                }                else if(p[i].solve==p[j].solve)                {                    if(p[i].totaltime>p[j].totaltime)                    {                        person temp;                        temp=p[i];                        p[i]=p[j];                        p[j]=temp;                    }                }            }        }        for(int i=0; i<110; i++)            if(p[i].issub==1)                printf("%d %d %d\n",p[i].number,p[i].solve,p[i].totaltime);        if(cas)            putchar('\n');    }    return 0;}

原创粉丝点击