結果
| 問題 |
No.70 睡眠の重要性!
|
| コンテスト | |
| ユーザー |
monburan_0401
|
| 提出日時 | 2018-08-31 01:03:33 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,094 bytes |
| コンパイル時間 | 145 ms |
| コンパイル使用メモリ | 30,208 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-09-13 20:37:56 |
| 合計ジャッジ時間 | 631 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 3 WA * 3 |
ソースコード
/* 太郎君は健康のために、毎日、寝た時刻と起きた時刻の記録をとっています。
入力に、寝た時刻と起きた時刻のリストが与えられるので、
睡眠時間の合計を出力してください。
太郎君は、1回につき24時間以上眠り続けることは無いものとします。
太郎君の世界は1日あたり24時間、1時間は60分で表されます。*/
#include <stdio.h>
int main(void){
int N; // 入力値。N回記録する
char T1[6],T2[6]; // 入力値。T1:就寝時刻、T2:起床時刻
int h1[2],h2[2],m1[2],m2[2];
int k;
int j;
int H,M,h,m; // T1は H:M、T2はh:m
int min = 0; // 求める時間(分)
scanf("%d",&N);
for(int t = 0; t < N; t++){
for (int i = 0; i < 2; i++){ // 時間、分の初期化。h1[2] = {0}でも良い
h1[i] = 0;
h2[i] = 0;
m1[i] = 0;
m2[i] = 0;
}
scanf("%s%s",T1,T2);
// printf("%d\n%s\n%s\n",N,T1,T2); // 入力されたデータの確認用
k = 1; j = 1;
for (int i = 4; i >= 0; i--){ // 後ろから調べる。
if (T1[i] == 0){ continue; } // 空だったら飛ばす
if (T1[i] != ':' && i > 1){
m1[k] = T1[i] - 48;
k -= 1;
} else if (T1[i] != ':'){
h1[j] = T1[i] - 48;
j -= 1;
}
}
k = 1; j = 1;
for (int i = 4; i >= 0; i--){ // 後ろから調べる。
if (T2[i] == 0){ continue; } // 空だったら飛ばす
if (T2[i] != ':' && i > 1){
m2[k] = T2[i] - 48;
k -= 1;
} else if (T2[i] != ':'){
h2[j] = T2[i] - 48;
j -= 1;
}
}
// printf("%d%d : %d%d\n",h1[0],h1[1],m1[0],m1[1]); // 入力されたデータの確認用
// printf("%d%d : %d%d\n",h2[0],h2[1],m2[0],m2[1]); // 入力されたデータの確認用
// H時M分に寝た
H = h1[0] * 10 + h1[1];
M = m1[0] * 10 + m1[1];
// h時m分に起きた
h = h2[0] * 10 + h2[1];
m = m2[0] * 10 + m2[1];
if (M > m){
min += ( (60 - M) + m );
H += 1;
} else if(M < m){
min += (m - M);
}
if (H >= h){
min += ( (24 - H) + h) * 60;
} else {
min += (h - H) * 60;
}
}
printf("%d\n",min);
return 0;
}
monburan_0401