首页 > 代码库 > HDU 1209
HDU 1209
http://acm.hdu.edu.cn/showproblem.php?pid=1209
水题,按五个时针分针成的锐角从小到大排序,角度相同时间从早到晚,输出中间的那个
时针一小时走30度,一分钟走0.5度,分针一分钟走6度,注意是锐角,大于180要用360减回去,为避免精度出问题统一乘2拒绝小数
#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <algorithm>using namespace std;struct node { int hh, mm; int ang;}kk[5];int ABS(int x) { return x > 0 ? x : -x;}int cmp(node a, node b) { if(a.ang == b.ang) return a.hh * 60 + a.mm < b.hh * 60 + b.mm; return a.ang < b.ang;}int main() { int T; scanf("%d", &T); while(T--) { for(int i = 0; i < 5; i++) { scanf("%d:%d", &kk[i].hh, &kk[i].mm); kk[i].ang = ABS(kk[i].hh % 12 * 60 + kk[i].mm - kk[i].mm * 12); if(kk[i].ang > 360) kk[i].ang = 720 - kk[i].ang; } sort(kk, kk + 5, cmp); printf("%02d:%02d\n", kk[2].hh, kk[2].mm); } return 0;}
HDU 1209
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。