zoukankan      html  css  js  c++  java
  • Sicily 6768. Log Books 解题报告

    题目传送门:6768. Log Books

    思路:

    1.  这道题比较麻烦的是输入,时间的格式如12:04 ,这样后面再计算加减的时候会有问题,所以干脆转化成分钟,没一个时刻用该时刻是当天的第多少分钟表示,如12:04可以表示为第12 * 60 + 4 = 724

    2.  对于n个驾驶时间的信息,每次都要判断是否超过2个小时,按照题目只要有一次超过2个小时就NON。

    3.  累加总的驾驶时间以便最后判断是否达到50小时,还有每次要判断是否在夜间驾驶,累加总的夜间驾驶时间判断是否达到10小时。

    代码:

     1 #include <iostream>
     2 #include <stdio.h>
     3 using namespace std;
     4 
     5 
     6 int main(){
     7     int n;
     8     while(scanf("%d", &n) && n != 0){
     9         int start_time, finish_time, sunrise_time, sunset_time;
    10         int hour, minute;
    11         int driving_time_total = 0, night_driving_time_total = 0;
    12         string result = "PASS";
    13         for (int i = 0; i < n; ++i) {
    14             //read in times and convert to minutes
    15             scanf("%d:%d", &hour, &minute);
    16             sunrise_time = hour * 60 + minute;
    17             scanf("%d:%d", &hour, &minute);
    18             sunset_time = hour * 60 + minute;
    19             scanf("%d:%d", &hour, &minute);
    20             start_time = hour * 60 + minute;
    21             scanf("%d:%d", &hour, &minute);
    22             finish_time = hour * 60 + minute;
    23             int driving_time = finish_time - start_time;
    24             if(driving_time >= 120){
    25                 result = "NON";
    26                 continue;
    27             }
    28             driving_time_total += (finish_time - start_time);
    29             //judge if drive at night
    30             if(start_time < sunrise_time && driving_time <= 2 * (sunrise_time - start_time))
    31                 night_driving_time_total += driving_time;
    32             else if(finish_time > sunset_time && driving_time <= 2 * (finish_time - sunset_time))
    33                 night_driving_time_total += driving_time;
    34         }
    35         if(driving_time_total < 50 * 60)
    36             result = "NON";
    37         if(night_driving_time_total < 10 * 60)
    38             result = "NON";
    39         cout << result << endl;
    40     }
    41     return 0;
    42 }
  • 相关阅读:
    C++ Programming with TDD之一:GMOCK框架简介
    Linux Programming之MySQL
    Python之自动单元测试之一(unittest使用实例)
    关于过去的这一个月——面试经历
    谈谈Python中对象拷贝
    C++之Effective STL学习笔记Item21
    C++之Effective STL学习笔记Item7
    C++之Effective STL学习笔记Item20
    C++之Effective STL学习笔记Item14
    Coding Rules
  • 原文地址:https://www.cnblogs.com/jolin123/p/3619257.html
Copyright © 2011-2022 走看看