土下座しながら探索中

主に競技プログラミング

387A : George and Sleep

問題リンク:Problem - 387A - Codeforces

問題概要:
ある人が目覚めた時間とベッドにはいった時間が与えられる。
その人はどのくらいの間寝ていたか?

解法:
目が覚めた時間とベッドにはいった時間を分単位に直しておく
(目が覚めた時間)ー(ベッドに入った時間)が負なら24*60を加える
そうした値が答えとなる

簡単なんだけど、以前解けなくてパニックに陥った問題
これでもう今後は大丈夫!

コード:

#include<iostream>
#include<cstdio>

#define REP(i,s,n) for(int i=s;i<n;i++)
#define rep(i,n) REP(i,0,n)

using namespace std;

int main(){
  int h1,h2,m1,m2;
  scanf("%d:%d",&h1,&m1);
  scanf("%d:%d",&h2,&m2);
  int ans = (h1*60+m1) - (h2*60+m2);
  if(ans < 0)ans += 24*60;
  printf("%02d:%02d\n",ans/60,ans%60);
  return 0;
}