zoukankan      html  css  js  c++  java
  • 河工大玲珑校赛重现の 饶学妹的比赛

    题目传送门:http://218.28.220.249:50015/JudgeOnline/problem.php?id=1260

    1260: 饶学妹的比赛

    时间限制: 1 秒  内存限制: 64 MB
    提交: 363  解决: 116
    提交 状态 

    题目描述

    饶学妹组织了一场ACM赛制的比赛,大家纷纷慕名来参加。比赛中大家交题只会有两种结果:AC,WA。比赛结束了,饶学妹制作榜单啦。首先按AC题目的数目(重复AC一道题只算一次)从多到少排名;AC题目数目相同的同学按罚时(罚时计算方式为:单题罚时 = (首次AC该题目时间 + 首次AC之前WA的次数 * 20) min,总罚时 = 各题罚时之和;即某题目AC之后,对这道题目后续的提交均不计入罚时)从少到多排列;AC数目相同且罚时也相同的同学,按编号从小往大排序。

    输入

    第一行为n,m,k(1≤n≤1000,1≤m≤10000,1≤k≤10),分别表示参加比赛的人数、提交总次数和总题数。
    之后一行为n个用空格分隔的字符串,表示n位参赛选手的姓名(每个字符串长度均不超过20,且仅含小写字母);
    之后m行,每行均为 Timei IDi PIDi Resulti,(1≤TimeiTimei+1≤300,1≤IDin,1≤PIDik,Resulti="AC"/"WA"),表示编号为IDi的选手在Timei时刻提交了编号为PIDi的题目,且结果为Resulti.

    输出

    输出n行,按排名从高到低排列。每行分别输出该选手的姓名,过题数,总罚时,中间均为一个空格间隔。

    样例输入

    5 11 10
    phx lsf zk rqy ch
    1 1 1 AC
    1 1 2 AC
    2 1 3 AC
    2 1 4 AC
    3 2 2 WA
    4 2 2 AC
    5 3 2 AC
    10 5 1 WA
    20 5 2 WA
    30 5 3 WA
    40 5 4 WA
    

    样例输出

    phx 4 6
    zk 1 5
    lsf 1 24
    rqy 0 0
    ch 0 0


    比赛的时候死活没有交过去,一直RE,连个WA都不给我,,,后来今天突然发现,,,是我的sort写错了,,崩溃

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<algorithm>
     4 using namespace std;
     5 struct A{
     6     char na[22];
     7     int ac[20],wa[20],time,bian,acti;
     8 };
     9 bool cmp(A a,A b)
    10 {
    11     if(a.acti==b.acti)
    12     {
    13         if(a.time==b.time)
    14             return a.bian<b.bian;
    15         return a.time<b.time;
    16     }
    17     return a.acti>b.acti;
    18 }
    19 int main()
    20 {
    21     int n,m,k,i,j,a,b,c;
    22     char d[10];
    23     struct A r[1100];
    24     while(scanf("%d%d%d",&n,&m,&k)!=EOF)
    25     {
    26         
    27         memset(r,0,sizeof(r));
    28         getchar();
    29         for(i=1;i<=n;i++)
    30         {
    31             scanf("%s",r[i].na);
    32             r[i].bian=i;
    33         }
    34         
    35         
    36         for(i=0;i<m;i++)
    37         {
    38             scanf("%d%d%d %s",&a,&b,&c,d);
    39             if(strcmp(d,"AC")==0&&r[b].ac[c]==0)
    40             {
    41                 r[b].ac[c]=1;
    42                 r[b].acti++;
    43                 if(r[b].wa[c]!=0)
    44                 {
    45                     r[b].time+=r[b].wa[c]*20+a;
    46                 }
    47                 else 
    48                     r[b].time+=a;
    49             }
    50             else 
    51             {
    52                 r[b].wa[c]++;
    53             }
    54         }
    55         sort(r+1,r+n+1,cmp);
    56         for(i=1;i<=n;i++)
    57         {
    58             printf("%s %d %d
    ",r[i].na,r[i].acti,r[i].time);
    59         }
    60         
    61     }
    62     return 0;
    63 }
  • 相关阅读:
    hibernate关联关系
    数据结构之二叉树java实现
    队列java实现
    栈java实现
    原生JS结合cookie实现商品评分组件
    JAVA学习第一阶段(2)
    JAVA学习第一阶段(1)
    如何修改hosts并保存
    运行Apache时出现the requested operation has failed
    实现一元多项式
  • 原文地址:https://www.cnblogs.com/ljmzzyk/p/6801809.html
Copyright © 2011-2022 走看看