zoukankan      html  css  js  c++  java
  • URAL 6089 Nine

    水题,找误差范围之内9最多的时间,如果有多个,选择误差最小的一个,如果还有多个,选择字典序最小的一个。同一个时间可以有不同的表示方法,例如60:15也可以表示为59:75。

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<algorithm>
    using namespace std;
    int main()
    {
        int ansx, ansy;
        int mm, ss, i, j;
        while (~scanf("%d:%d", &mm, &ss))
        {
            if (mm == 0 && ss == 0) break;
            int t = mm * 60 + ss;
            int xx, yy;
            int maxn = -1;
            int minn = 999999999;
            for (i = 0; i <= 99; i++)
            {
                for (j = 0; j <= 99; j++)
                {
                    int t9 = i * 60 + j;
                    if (10 * abs(t - t9) < t)
                    {
                        int sum = 0;
                        xx = i, yy = j;
                        if (xx / 10 == 9)sum++;
                        if (xx % 10 == 9)sum++;
                        if (yy / 10 == 9)sum++;
                        if (yy % 10 == 9)sum++;
                        if (sum>maxn || (abs(t9 - t) < minn&&sum == maxn))
                        {
                            ansx = xx; ansy = yy;
                            maxn = sum;
                            minn = abs(t9 - t);
                        }
                        sum = 0;
                        if (yy < 40 && xx>0)
                        {
                            xx--;
                            yy = yy + 60;
                            if (xx / 10 == 9)sum++;
                            if (xx % 10 == 9)sum++;
                            if (yy / 10 == 9)sum++;
                            if (yy % 10 == 9)sum++;
                            if (sum > maxn || (abs(t9 - t) < minn&&sum == maxn))
                            {
                                ansx = xx; ansy = yy;
                                maxn = sum;
                                minn = abs(t9 - t);
                            }
                        }
                    }
                }
            }
            printf("%02d:%02d
    ", ansx, ansy);
        }
        return 0;
    }
  • 相关阅读:
    对deferred(延迟对象)的理解
    string 、char* 、 char []的转换
    char* 和 cha[]
    层序遍历二叉树
    之字形打印二叉树
    右值
    函数指针(待修改)
    top k

    哈夫曼编码
  • 原文地址:https://www.cnblogs.com/zufezzt/p/4448107.html
Copyright © 2011-2022 走看看