NYOJ----1591----模拟+map
链接:http://nyoj.top/problem/1591
题目描述:
为加强校园安全管理,南阳理工学院在校园大门处安装了一套门禁系统,同学们每次进出 校门都需要刷校园卡,门禁系统则会在数据库中留下刷卡记录。
由于门禁系统设计的缺陷,系统并没有记录每次刷卡是进入校园还是离开校园。请你利 用学校的学生信息和门禁系统的记录,求出每次刷卡是进入校园还是离开校园。假设初始时, 所有学生都在校园内部,且不存在漏刷卡的情况。
输入描述:
第一行输入了两个整数 n, m (1 ≤ n ≤ 30000, 1 ≤ m ≤ 100000),表示学校中学生的人数和刷卡记录的条数。 接下来 n 行,每行包括两个字符串,分别表示一位同学的学号和姓名。学号由恰好 8 位0-9 的数字构成(可能有前导 0),姓名则由 1 至 10 个小写英文字母组成。 接下来 m 行,每行包括三个字符串,分别表示一条刷卡记录的日期、时间和学号。日期的格式为 YYYY-MM-DD,日期介于 2010 年 1 月 1 日和 2019 年 1 月 1 日之间,时间的格式为 HH:MM:SS (00 ≤ HH < 24, 00 ≤ MM, SS < 60)。数据保证输入的日期和时间合法保证刷卡记录中的学号在学生信息中出现过。 保证没有两个学生具有相同的学号(但可能有相同的姓名)。保证刷卡记录中没有日期和时间均相同的记录。
输出描述:
对于每一条刷卡记录,分别在一行内打印该刷卡记录的方向、日期、时间和学生姓名,之间用一个空格隔开。如果是离开校园,方向用字符 < 表示,如果是进入校园,方向用字符 >表示。 请将刷卡记录按照日期时间的先后顺序排序后输出。
样例输入:
复制
3 5 80000001 lhy 80000002 csy 80000004 wcy 2017-12-06 09:03:33 80000001 2018-06-17 21:49:33 80000002 2014-12-14 14:04:31 80000004 2018-07-04 11:19:42 80000001 2011-12-23 16:11:06 80000002
样例输出:
< 2011-12-23 16:11:06 csy < 2014-12-14 14:04:31 wcy < 2017-12-06 09:03:33 lhy > 2018-06-17 21:49:33 csy > 2018-07-04 11:19:42 lhy
用两个map搞一下
sort排序
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<map>
using namespace std;
map<int,string> d;
map<int,bool> f;
typedef struct node{int year,month,day,h,f,s,num;
}node;
node q[100007];
bool cmp(node a,node b){if(a.year==b.year){if(a.month==b.month){if(a.day==b.day){if(a.h==b.h){if(a.f==b.f){return a.s<b.s;}return a.f<b.f;}return a.h<b.h;}return a.day<b.day;}return a.month<b.month;}return a.year<b.year;
}
int n,m;
int main(){cin>>n>>m;int num;string name;for(int i=1;i<=n;i++){cin>>num>>name;d[num]=name;f[num]=false;}for(int i=1;i<=m;i++){scanf("%d-%d-%d %d:%d:%d %d",&q[i].year,&q[i].month,&q[i].day,&q[i].h,&q[i].f,&q[i].s,&q[i].num);}sort(q+1,q+1+m,cmp);for(int i=1;i<=m;i++){if(f[q[i].num]==false){printf("< ");f[q[i].num]=true;}else {printf("> ");f[q[i].num]=false;}printf("%04d-%02d-%02d %02d:%02d:%02d ",q[i].year,q[i].month,q[i].day,q[i].h,q[i].f,q[i].s);cout<<d[q[i].num]<<endl;}return 0;
}
NYOJ----1591----模拟+map相关推荐
- java过滤map去除重复数据,javascript模拟map输出与去除重复项的方法
本文实例讲述了javascript模拟map输出与去除重复项的方法.分享给大家供大家参考.具体方法如下: 1.Javascriptmap输出 function Map(){ // private va ...
- POJ 3087 Shuffle'm Up (模拟+map)
题目链接:http://poj.org/problem?id=3087 题目大意:已知两堆牌s1和s2的初始状态, 其牌数均为c,按给定规则能将他们相互交叉组合成一堆牌s12,再将s12的最底下的c块 ...
- postman如何模拟Map参数请求呢?
Controller示例代码 @RequestMapping(value = "/login",method = RequestMethod.POST)@ResponseBodyp ...
- python异步封装_python中用协程(异步)实现map函数,爬虫也可以封装进去,
1.python中得函数map(),通过加延时发现,是单线程执行,有阻塞,实现如下: import time def A(a): time.sleep(0.5) c = a + 11 return c ...
- PTA团体程序设计天梯赛篇(一)----模拟专题
模拟专题 字符串模拟 c++ 常用字符串处理函数 1. 截取子串 2. 替换子串 3. 查找子串 4.删除字符串 5.判断与转换函数 6 翻了(替换子串) 敲笨钟(字符串查找+字符串替换) 估值一亿的 ...
- MapReduce详解和WordCount模拟
最早接触大数据,常萦绕耳边的一个词「MapReduce」.它到底是什么,能做什么,原理又是什么?且听下文讲解. 是什么 MapReduce 即是一个编程模型,又是一个计算框架,它充分采用了分治的思想, ...
- java中图的封装,模拟java 中地图的功能封装一个有序的地图
map模型: /** * Project Name:psim * File Name:MapModel.java * Package Name:com.psim.bean * Date:2014年5月 ...
- WebService处理Map
2019独角兽企业重金招聘Python工程师标准>>> 遇到cxf自己不能处理的数据,如cxf不能自己处理Map对象,遇到这种情况需要开发工程师自己写代码处理 1.@XmlJavaT ...
- webservice返回值为Map类型的处理方法
在写一个webservice的时候,方法的返回值是一个复杂类型,处理方法是写一个结果类(Javabean)作为返回值.想着webservice方法返回值为Map的没写过,然后就试着写了一个简单的Dem ...
- VOC数据集mAP计算(附带代码)解析
VOC数据集mAP计算(附带代码)解析 一.几个概念 IoU:交并比 (目标检测实际上是分类问题,检测器在图片上以不同像素尺度生成大量的框,如果检测器认为某个框里存在物体,就把它画出来) TP:画出了 ...
最新文章
- VUE的本地应用-V- show
- php大数组循环嵌套的性能优化
- 支持向量回归 svr
- wps如何自己制作流程图_WPS小技巧——如何制作炫酷的个性电子简历
- python提取数据库数据_Python如何读取MySQL数据库表数据
- echarts 引用地图的json
- 配置和调试EIGRP
- 《高质量C++/C编程指南(林锐)》学习笔记
- 单元测试、集成测试、功能测试——Unittest
- matlab堆积式玫瑰图,用SAS实现堆积式南丁格尔玫瑰图Nightingale Rose Diagram (上)...
- 在线文档 - Google 文档的数据协议设计
- 点击 按钮 下载图片
- 高等数学:第五章 定积分(3) 微积分基本公式
- 微信7012android1620,微信7012版
- 小程序接入「微信对话开放平台」,创建对话客服机器人
- 使用openssl 转换pkcs12证书为pem格式
- 第一次使用Eclipse:编写简单的Java小程序
- 苹果商店APP发布流程(H5 APP苹果发布流程)
- ajax参数xhrfields,使用xhrFields可以将进度功能添加到jQuery.ajax()中吗?
- 龙芯ls2k1000看门狗应用程序