A - 开门人和关门人(sort+结构体)
到、签离记录,请根据记录找出当天开门和关门的人。
每天的记录在第一行给出记录的条目数M ( > 0 ),下面是M行,每行的格式为
证件号码 签到时间 签离时间
其中时间按“小时:分钟:秒钟”(各占2位)给出,证件号码是长度不超过15的字符串。
注意:在裁判的标准测试输入中,所有记录保证完整,每个人的签到时间在签离时间之前,
且没有多人同时签到或者签离的情况。
3
1
ME3021112225321 00:00:00 23:59:59
2
EE301218 08:05:35 20:56:35
MA301134 12:35:45 21:40:42
3
CS301111 15:30:28 17:00:10
SC3021234 08:00:00 11:25:25
CS301133 21:45:00 21:58:40
ME3021112225321 ME3021112225321
EE301218 MA301134
SC3021234 CS301133
#include<stdio.h>
#include<cstring>
#include<algorithm>
using namespace std; //sort的头文件
struct People
{
char num[50];
int Come;
int Out;
}p[5000]; //结构体
注意结尾的分号
bool cmp1(People a,People b) //假设存在多个人同时签到,输出证件号较小的
{
// if (a.Come == b.Come)
// {
// int t = strcmp(a.num , a.num);
//前面的大,返回1;相等返回0;前面的小,返回-1
// if (t == -1)
// return true;
// else
// return false;
// }
// else
return a.Come < b.Come;
}
bool cmp2(People a,People b)
{
return a.Out > b.Out;
//从大到小排序
}
int main()
{
int n,m;
scanf ("%d",&n);
while (n--)
{
scanf ("%d",&m);
for (int i = 1 ; i <= m ; i++)
{
int h,m,s;
scanf ("%s",p[i].num);
scanf ("%d:%d:%d",&h,&m,&s);
p[i].Come = h*3600 + m*60 + s;
scanf ("%d:%d:%d",&h,&m,&s);
p[i].Out = h*3600 + m*60 + s;
}
sort(p+1,p+m+1,cmp1);
printf ("%s ",p[1].num);
sort(p+1,p+m+1,cmp2);
printf ("%s\n",p[1].num);
}
return 0;
}
sort() //快速排序 O(nlogn)
sort( , , ) //1.要排序的容器起始地址 2.要排序的容器的末地址+1 3.排序方法(可省略:默认是从小到大)
数组排序
#include<stdio.h>
#include<algorithm> //头文件
using namespace std;
bool cmp(int a,int b)
{
return a > b;
}
int main()
{
int n;
int num[100];
scanf ("%d",&n);
for (int i = 0 ; i < n ; i++)
{
scanf ("%d",&num[i]);
}
sort(num,num+n);
for (int i = 0 ; i < n ; i++)
{
printf ("%d%c",num[i],i==n-1?'\n':' ');
//数组的一种输出方法
}
return 0;
}
A - 开门人和关门人(sort+结构体)的更多相关文章
- 开门人和关门人(结构体+sort)
每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签 到.签离记录,请根据记录找出当天开门和关门的人. Input 测试输入的第一行给出记录的总天数N ( > ...
- 题目1013:开门人和关门人(结构体自定义cmp排序)
题目链接:http://ac.jobdu.com/problem.php?pid=1013 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...
- 九度OJ 1013:开门人和关门人 (排序)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5052 解决:2563 题目描述: 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签到.签离记录,请 ...
- HDU 1234 (浙大计算机研究生复试上机考试-2005年) 开门人和关门人 (水)
开门人和关门人 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- hdu1234 开门人和关门人 (等价转换)
开门人和关门人 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- HDUOJ----1234 开门人和关门人(浙江大学考研题)
开门人和关门人 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- HDU 1234 开门人和关门人 (模拟)
题目链接 Problem Description 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签 到.签离记录,请根据记录找出当天开门和关门的人. Input ...
- sort+结构体实现二级排序
之前介绍的sort函数由于其效率较高,使用较为简单让我用起来那叫一个爽,今天再写一篇使用sort+结构体实现二级排序的方法. 还是先想个问题吧,比如我想输入5个同学的名字和身高,然后得到他们身高的降序 ...
- 网上关于sort结构体排序都不完整,我来写一个完整版的 2014-08-09 16:50 60人阅读 评论(0) 收藏
主要参考sort函数_百度文库, 但是那篇有错误 2.结构体排序,a升,b降,c降 平板视图 打印? 01 #include <iostream> 02 #include <algo ...
随机推荐
- maven的下载
1.maven的下载地址:http://maven.apache.org/download.cgi.下载3.3.9版本(在选择下载的版本是要与JDK契合). 2.下载之后,解压的文件放的位置尽量不要有 ...
- Spring框架的特点
1. 为什么要学习Spring的框架 * 方便解耦,简化开发 * Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理 * AOP编程的支持 * Spring提供面向切面 ...
- 安全运维 -- 更改ssh端口
环境:Ubuntu 16 前言 黑客遍地都是,ssh/pop3/ftp等爆破工具的流行让站长的日常运维工作量大大加重.Metasplot,Bruter等工具更是针对以上协议有专门 的破解方法,有字典破 ...
- HDU_5688
/* 度熊所居住的 D 国,是一个完全尊重人权的国度.以至于这个国家的所有人命名自己的名字都非常奇怪.一个人的名字由若干个字符组成,同样的,这些字符的全排列的结果中的每一个字符串,也都是这个人的名字. ...
- Codeforces 611C. New Year and Domino 动态规划
C. New Year and Domino time limit per test 3 seconds memory limit per test 256 megabytes input stand ...
- Laravel - Opening Multiple Projects
On this page: Basics Opening multiple projects Deleting a project from view Important notes Basics P ...
- TASK 的使用
http://www.tuicool.com/articles/IveiQbQ
- system v消息队列demo(未编译)
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <errno.h> ...
- 前端之css笔记2
1 属性选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- spring mvc 用cookie和拦截器实现自动登录(/免登录)
Cookie/Session机制详解:http://blog.csdn.net/fangaoxin/article/details/6952954 SpringMVC记住密码功能:http://blo ...