bLue's Ranklist - Vol.1

bLue's Ranklist - Vol.1

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

上一场比赛结束后,bLue 及时保存了一份比赛的排行榜 (Ranklist)。然而昨天 bLue 打开保存的 Ranklist 一看,发现保存的文件发生了不可描述的错误,非要强行描述的话,就是他保存的 Ranklist 上只能看到每个人的解题数量和总时间(包括罚时),而且顺序完全错乱了。

崩溃的 bLue 看着崩坏的 Ranklist 一筹莫展。不过他突然想到,马上就到循环赛了,不如正好出一个题让学弟学妹来帮他修复坏掉的 Ranklist,这样他就可以拿 AC 的代码去修复文件了,是不是相当机智啊 ^_^ 。

Ranklist 的排序规则是这样的:解题数多的靠前,如果解题数相同,则总时间少的靠前。如果两个人的解题数和总时间都相同,则他们的排名也相同。

Input

输入数据有多组(数据组数不超过 1000),到 EOF 结束。

每组数据包含多行:

  • 第 1 行是一个整数 n (0 < n < 1000),表示 Ranklist 上的人数。
  • 接下来有 n 行,每行包含两个整数 s, p (0 <= s < 20, 0 <= p < 10000),分别表示这个人的解题数和总时间(单位为分钟)。

Output

对于每组输入,输出 n 行,为重新排序后的 Ranklist。

扫描二维码关注公众号,回复: 3188401 查看本文章

每行输出均为此 Ranklist 上一个人的信息,包含 3 个整数 r, s, p,分别表示排名、解题数和总时间。

Sample Input

5
6 300
5 185
5 185
5 140
4 120

Sample Output

1 6 300
2 5 140
3 5 185
3 5 185
5 4 120

代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct kk
{
    int num,t;

}s[1005],k;


int main()
{
    int a,b,c,e[1005],d,f,g,h,i,j;
    while(~scanf("%d",&a))
    {
        for(f=0;f<a;f++)
            e[f]=1;
        for(b=0;b<a;b++)
        {
            scanf("%d %d",&s[b].num,&s[b].t);
        }
        for(c=1;c<=a-1;c++)
        {
            for(d=0;d<a-c;d++)
            {
                if(s[d].num<s[d+1].num)
                {
                    k=s[d];
                    s[d]=s[d+1];
                    s[d+1]=k;
                }
                else if(s[d].num==s[d+1].num&&s[d].t>s[d+1].t)
                {
                    k=s[d];
                    s[d]=s[d+1];
                    s[d+1]=k;
                }
            }
        }
        i=0;
        for(g=0;g<a;g++)
        {
            if(e[g])
            {
                i++;
                j=0;
                for(h=g;h<a;h++)
                {
                    if(s[g].num==s[h].num&&s[g].t==s[h].t)
                    {
                        printf("%d %d %d\n",i,s[g].num,s[g].t);
                        e[h]=0;
                        j++;
                    }
                }
                i=i+j-1;
            }
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/The_city_of_the__sky/article/details/81750098