/*
题目描述:现有公园游船租赁处请你编写一个租船管理系统。当游客租船时,管理员输入船号并按下S键,系统开始计时;当游客还船时,管理员输入船号并按下E键,系统结束计时。船号为不超过100的正整数。当管理员将0作为船号输入时,表示一天租船工作结束,系统应输出当天的游客租船次数和平均租船时间。注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有租船没有还船,或者只有还船没有租船的纪录,系统应能自动忽略这种无效纪录。输入:测试输入包含若干测试用例,每个测试用例为一整天的租船纪录,格式为:船号(1~100) 键值(S或E) 发生时间(小时:分钟)每一天的纪录保证按时间递增的顺序给出。当读到船号为-1时,全部输入结束,相应的结果不要输出。输出:对每个测试用例输出1行,即当天的游客租船次数和平均租船时间(以分钟为单位的精确到个位的整数时间)。样例输入:1 S 08:102 S 08:351 E 10:002 E 13:160 S 17:000 S 17:003 E 08:101 S 08:202 S 09:001 E 09:200 E 17:00-1样例输出:2 1960 01 60**/
#include <cstdio>
#include <cstring>
#include <set>
#include <iostream>
#include <cmath>using namespace std;const int N = 60;struct Info
{int no;int start;bool operator == (const Info &b)const {return no == b.no;}bool operator < (const Info &b)const {return no < b.no;}
};struct Result
{int no;int t;bool operator < (const Result &b)const {return no < b.no;}
};int main()
{char buf[N];#ifndef ONLINE_JUDGEfreopen("e:\\uva_in.txt", "r", stdin);
#endifset<Info> s;set<Result> result;while (gets(buf) && strcmp(buf, "-1") != 0) {int no;char ch;char tmp[N];Info info;sscanf(buf, "%d %c%s", &no, &ch, tmp);//cout << "no:" << no << " ch:" << ch << " tmp:" << tmp << endl;if (no != 0) {info.no = no;int hour, min;sscanf(tmp, "%d:%d", &hour, &min);set<Info>::iterator pos = s.find(info);if (pos == s.end()) {if (ch == 'S') {info.start = hour * 60 + min;s.insert(info);}} else {Result res;if (ch == 'E') {res.no = no;res.t = hour * 60 + min - pos->start;result.insert(res);}}} else {double ans = 0;for (set<Result>::iterator i = result.begin(); i != result.end(); i++) {ans += i->t;}printf("%d %d\n", result.size(), result.size()?(int)(ans / result.size() + 0.5):0);s.clear();result.clear();}}return 0;
}

题目1022:游船出租相关推荐

  1. 题目1022:游船出租(结构体使用)

    题目链接:http://ac.jobdu.com/problem.php?pid=1022 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  2. hdu_1861_游船出租_201402282130

    游船出租 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  3. 杭电1861 游船出租

    游船出租 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. hdu1861 游船出租【模拟】

    游船出租 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...

  5. hdu 1861 游船出租

    hdu 1861 游船出租 题意 题解 源代码 传送门 题意 给定n条租船与还船信息,求完整记录的租借次数,与平均时间 题解 用一个数组记录每个船号的借船时间,当还船的时间,首先判断是否借船, 如果存 ...

  6. 题目1022:游船出租 2007年浙江大学计算机及软件工程研究生机试真题

    题目描述: 现有公园游船租赁处请你编写一个租船管理系统.当游客租船时,管理员输入船号并按下S键,系统开始计时:当游客还船时,管理员输入船号并按下E键,系统结束计时.船号为不超过100的正整数.当管理员 ...

  7. 题目1022:游船出租(hash简单应用)

    问题来源 http://ac.jobdu.com/problem.php?pid=1022 问题描述 每次输入:船号(1~100) 键值(S或E) 发生时间(小时:分钟).当船号为0时,代表一天结束: ...

  8. hdu 1861 游船出租 tag:模拟

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1861     一个研究生入学考试上机题==b 思路: 将信息放在结构体里,然后存在向量中, 最后扫描到 ...

  9. HDOJ1861 游船出租

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1861 代码: #include<stdio.h> #include<stdlib.h&g ...

最新文章

  1. CyberRT使用笔记
  2. synchronized不能锁静态变量_多线程编程不可错过——彻底理解synchronized
  3. Shell教程(一):简介
  4. 股权分配中的三种定时炸弹
  5. hdu 1574(01背包)
  6. 数据分析利器:XGBoost算法最佳解析
  7. 什么原因成就了一位优秀的程序员?(转)
  8. Android的三种网络联接方式(URL / HttpURLConnection | HttpClient | InetAddress )
  9. 西门子mag6000接线_电磁流量计MAG5000或MAG6000,通过脉冲输出累积流量,脉冲输出如何接线,如何设置参数?...
  10. java组件_三个必不可少的Java平台组件:什么是JVM,JDK,JRE?有啥区别?
  11. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明)(热身赛)
  12. ELK详解(二)——Elasticsearch安装与部署
  13. 物理计算机技术研究生就业前景,物理学就业前景
  14. 系统集成项目管理工程师 笔记(第一章:信息化知识)
  15. 宏电DTU配置教程和配置工具
  16. 清理MSOCache文件夹
  17. 成考专升本高等数学公式笔记
  18. 【微信公众号】微信公众号授权出现的常见问题解决方案
  19. Cause: org.postgresql.util.PSQLException: 错误: 对于可变字符类型来说,值太长了(255)
  20. 密码学基础:Base64编码

热门文章

  1. 序列联配(alignment)和数据库搜索方法简介
  2. python基础一入门必备知识-python基础教程#菜鸟也能看懂的超简单入门必备知识...
  3. python语法基础学习-Python基础语法精心总结!看完都知道的可以往下继续学习了...
  4. python绘制简单直方图-Python数据分析:统计函数绘制简单图形
  5. 自学python转行-强烈建议|转行Python最好看一下这篇文章
  6. python新手自学-新手自学python
  7. python编程案例教程课后答案-Python编程练习题学习汇总
  8. php和python哪个工资高-python工资高还是java?
  9. python语言可以应用在哪些方面-python应用于哪些方面
  10. python可以自学吗-大家觉得自学python多久能学会?