E

题目链接:acm.hust.edu.cn/vjudge/contest/126708#problem/E

解题思路:5是100,4是90,3是80,2是70,1是60,然后看时间,如果做出相同的题目个数,就看他们的时间排名,一半以上的加五分。

代码如下:

#include<cstdio>
#include<cstring>
using namespace std;
struct node
{
     int x;
     char s[10];
}a[100];
int main()
{
     int n,i,j,t[5];
    while(scanf("%d",&n)&&n!=-1)
    { for(i=0;i<n;i++)
              scanf("%d%s",&a[i].x,&a[i].s);
              memset(t,0,sizeof(t));
         for(i=1;i<=4;i++)
          for(j=0;j<n;j++)
              if(a[j].x==i)
               t[i]++;
          for(i=0;i<n;i++)
          {
               int k=0;
               if(a[i].x==5)
                    printf("100 ");
               else if(a[i].x==0)
                    printf("50 ");
               else
               {
                    for(j=0;j<n;j++)
                         if(a[j].x==a[i].x&&strcmp(a[j].s,a[i].s)<0)
                              k++;
                         if(k>=t[a[i].x]/2)printf("%d ",a[i].x*10+50);
                              else printf("%d ",a[i].x*10+55);

               }
          }
          printf(" ");
    }
    return 0;
}

原文地址:https://www.cnblogs.com/441179572qqcom/p/5767318.html