0
0

yukicoder No.70 睡眠の重要性! 解説

Last updated at Posted at 2024-08-04

問題文

解説

まず、今回の問題は出力形式が特殊になっている。
こういう時はscanfを使うといいだろう。
scanf("%d:%d %d:%d",&H,&M,&h,&m)と書けばよい。
次に睡眠時間のためだが、求めやすさのため分に直して求める。
どういうことかというと、ある変数$T$を$H\times 60+M$として求めるということだ。
これで$T=H\times 60+M$、$t=H\times 60+m$として求める。
で、これからどうやって睡眠した時間を数えるかというと、
・$T\leqq t$→$t-T$
・$T>t$→$t-T+1440$
これをそれぞれ求めて、最後にその総和を求めれば終わり。

C++での解答例

#include <bits/stdc++.h>
using namespace std;

int main(){
  int n,sum=0;cin>>n;
  for(int i=0;i<n;i++){
    int H,M,h,m;
    scanf("%d:%d %d:%d",&H,&M,&h,&m);
    getchar();
    int T=H*60+M,t=h*60+m;
    if(T<=t)sum+=t-T;
    else sum+=t-T+1440;
  }
  cout<<sum<<endl;
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0