HNUST 1641 罚时计算器(模拟) 湖南科技大学2014新生选拔赛
2015-08-12 15:30
417 查看
题目链接:Click here
思路:直接模拟。去年在现场没做出来,对此心里一直有一个疙瘩。
话不多说, 看代码:
思路:直接模拟。去年在现场没做出来,对此心里一直有一个疙瘩。
话不多说, 看代码:
#include <iostream> #include <cstring> #include <cstdio> #include <queue> #include <cstdlib> using namespace std; struct node { int h, m, s; int states; } q[50]; //储存每道题目的信息 int main() { int n, sh, sm, ss, n2, k; int a, b, c, tem, ans1, ans2, ans3; char que[3], sta[5], x1, x2; scanf("%d", &n); while(n--) { scanf("%d%c%d%c%d", &sh, &x1, &sm, &x2, &ss); scanf("%d", &n2); for(int i = 0; i < 20; i++) {//初始化 q[i].states = 0; q[i].h = q[i].m = q[i].s = 0; } for(int i = 0; i < n2; i++) { scanf("%s%d%c%d%c%d%s", que, &a, &x1, &b, &x2, &c, sta); k = que[0] - 'A'; if(q[k].states == 0) { if(sta[0] != 'A') q[k].m += 20; else { a--; b += 59; //这里都向下借一个单位,防止减成负数 c += 60; q[k].h += a - sh; q[k].m += b - sm; q[k].s += c - ss; q[k].states = 1; } } } ans1 = ans2 = ans3 = 0; for(int i = 0; i < 20; i++) { 4000 if(q[i].states == 1) { ans1 += q[i].h; ans2 += q[i].m; ans3 += q[i].s; } } tem = ans3; ans3 = tem % 60; ans2 += tem / 60; tem = ans2; //按照时间的表示规则,将其换算 ans2 = tem % 60; ans1 += tem / 60; printf("%02d:%02d:%02d\n", ans1, ans2, ans3); } return 0; }
相关文章推荐
- Gluster File System 3.3.0 Admimistration Guide(Gluster File System 3.3.0 管理指南)-1
- IO多路复用之epoll总结
- Datetime月初 月末
- 通过距离传感器来进行视力保护
- 第一,二类斯特林数
- Dealing with “java.lang.OutOfMemoryError: PermGen space” error
- spring4入门
- 火车进站问题
- IO继承体系图
- TR1和Boost
- PDF转jpg
- read,for,case,while,if简单例子
- 字符串常用方法
- Spring Hessian整合 404 问题
- OAF学习笔记-2-下拉框的制作
- OAF学习笔记-2-下拉框的制作
- OAF学习笔记-2-下拉框的制作
- OAF学习笔记-2-下拉框的制作
- OAF学习笔记-2-下拉框的制作
- OAF学习笔记-2-下拉框的制作