码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1209

时间:2015-02-03 01:48:12      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

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;
}
View Code

 

HDU 1209

标签:

原文地址:http://www.cnblogs.com/xiaohongmao/p/4269033.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!