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 }
  • 相关阅读:
    [2018福大至诚软工助教]原型设计+用户规格说明书小结
    高等数理逻辑大作业
    [2018福大至诚软工助教]测试与优化小结
    [2018福大至诚软工助教]结对项目小结
    BETA 版冲刺前准备
    Alpha冲刺之事后诸葛亮
    Alpha 冲刺 (10/10)
    Alpha 冲刺 (9/10)
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
  • 原文地址:https://www.cnblogs.com/jolin123/p/3619257.html
Copyright © 2011-2022 走看看