(精)hdoj(双重排序)

原创 2012年03月25日 11:00:06
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<map>
#include<string>
using namespace std;
class Person
{
public:
 char name[100];
 char time[100];
 int rank;
};

int comp(const void *a,const void *b)
{
 Person *person1,*person2;
 person1=(Person*)a;
 person2=(Person*)b;


 //如果说时间相同的话
 if(!strcmp(person1->time,person2->time))
 {
  return strcmp(person1->name,person2->name); 
 }
 //如果时间不相同,按照时间排序
 else
 {
  return strcmp(person1->time,person2->time);
 }
/*
 return strcmp(person1->time,person2->time);
*/
}

int main()
{
 //freopen("in.txt","r",stdin);
 int n;
 int casen=0;
 while(scanf("%d",&n))
 {
  if(n==0)
  {
   return 0;
  }
  int i=0;
  
  Person person[20];
  for(i=0;i<n;i++)
  {
   scanf("%s %s",person[i].name,person[i].time);
  }

  qsort(person,n,sizeof(Person),comp);

  int rank=1;char time[100];
  strcpy(time,person[0].time);
  person[0].rank=1;
  for(i=1;i<n;i++)
  {
   //如果说前一个时间跟后一个时间相同
   if(!strcmp(person[i].time,time))
   {
    person[i].rank=person[i-1].rank; 
   }
   //如果说前一个时间跟后一个时间不相同
   else
   {
    rank++;
    person[i].rank=i+1;
    strcpy(time,person[i].time);
   }
  }

  //输出
  if(casen>0)
  {
   cout<<endl;
  }
  casen++;
  printf("Case #%d\n",casen);
  for(i=0;i<n;i++)
  {
   printf("%s %d\n",person[i].name,person[i].rank);
  }


 }
 return 0;
}

 













版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

PAT 1025 PAT Ranking(双重排序)

题目https://www.patest.cn/contests/pat-a-practise/1025 题意:给出每个考场中每个学生的成绩,求所有学生的总排名以及所在考场内的分排名。注意,同分的...

HDOJ 2612 Find a way【最短路 双重bfs】

HDOJ 2612 【最短路 双重bfs】 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2612

hdoj 3790 最短路径问题(双重松弛)

最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S...

字典树实现词频统计及频率字典序双重融合排序算法

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...

【hdoj1051】Wooden Sticks(多关键字排序)

Wooden Sticks 大致题意:          工厂加工一批木棍,加工所用的设备调整一次需要一分钟,只要后面的木棍的长度和重量大于等于前面的木棍,设备就不用调整。设备第一次启动的时候也需...

hdoj 1082 excel 排序(结构体+sort排序)

Problem Description Excel可以对一组纪录按任意指定列排序。现请你编写程序实现类似功能。 Input 测试输入包含若干测试用例。每个测试用例的第1行包含两个整数 N (<=1...

hdoj1285 确定比赛名次 (经典拓扑排序) 初学拓扑排序.做

hdoj1285 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others...

HDOJ 2647 Reward (反向拓扑排序)

HDOJ 2647 Reward (反向拓扑排序) 有n个人,他们提出m个要求(就是x的奖励要比y高)。问你能否满足所有人要求,若能输出最少花费的钱,反之 (即成环) 输出-1。 ...

HDOJ 4324 Triangle LOVE(拓扑排序)

题意 用 拓扑排序 如果是判断三角恋或多角恋关系也就是 判断是否成环 , 成环就输出 No,否则,输出Yes

HDOJ 5154 Harry and Magical Computer (拓扑排序)

Harry and Magical Computer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (J...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)