Sicily 6768. Log Books 解题报告
生活随笔
收集整理的這篇文章主要介紹了
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 }?
轉載于:https://www.cnblogs.com/jolin123/p/3619257.html
總結
以上是生活随笔為你收集整理的Sicily 6768. Log Books 解题报告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用ProFTPD构建FTP服务器
- 下一篇: java笔记之抽象类和接口