hdu2115 I Love This Game

#include <iostream>
using namespace std;

struct node
{
       int mm;
       int ss;
       char name[30];
};

node data[21];

int comp(const void *a,const void *b)
{
       struct node *p = (node *)a;
       struct node *q = (node *)b;
       if(p->mm != q->mm)
       {
              return p->mm - q->mm;
       }
       else
       {
              if(p->ss != q->ss)
              {
                     return p->ss - q->ss;
              }
              else
              {
                     return strcmp(p->name,q->name);
              }
       }
}

int main()
{
       int n;
       int flag = 0;
       
       //freopen("2115.txt","r",stdin);
       while(cin >> n,n)
       {
              flag++;
              for(int i = 0; i < n; ++i)
              {
                     scanf("%s %d:%d",data[i].name,&data[i].mm,&data[i].ss);
              }
              qsort(data,n,sizeof(data[0]),comp);
              if(flag != 1)
              {
                     cout << endl;
                     cout << "Case #" << flag << endl;
              }
              else
              {
                     cout << "Case #" << flag << endl;
              }
              int t = 0;
              int m;
              int s;
              int f = 0;
              for(int j = 0; j < n; ++j)
              {
                     if(t == 0)
                     {
                            cout << data[j].name << " " << j + 1 << endl;
                            m = data[j].mm;
                            s = data[j].ss;
                            f = j + 1;
                     }
                     else
                     {
                            if(m == data[j].mm && s == data[j].ss)
                            {
                                   cout << data[j].name << " " << f << endl; 
                            }
                            else
                            {
                                   m = data[j].mm;
                                   s = data[j].ss;
                                   f = j + 1;
                                   cout << data[j].name << " " << j + 1 << endl;
                            }
                     }    
                     t++;
              }
       }
    return 0;
}


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值