日期:2025年6月8日
ZeroJudge 題目連結:n630. 電影院 (Cinema)
解題想法
這題要注意輸出的格式,時、分都是兩位數,前面要補0。計算電影開場時刻的過程,將單位都換成分鐘會比較方便。
Python 程式碼
使用時間約為 27 ms,記憶體約為 3.4 MB,通過測試。
import sys
for line in sys.stdin:
n = int(line) # n 部電影
movie = [tuple(map(int, input().split())) for _ in range(n)] # 電影開場時刻
h0, m0 = map(int, input().split()) # 現在的時刻
t0 = h0*60 + m0 + 20 # 現在的時刻加 20 分鐘,並以分鐘為單位
idx = -1 # 第 idx 部電影
for i, (h, m) in enumerate(movie): # 依序讀取電影開場時刻
t = h*60 + m # 電影開場時刻換成分鐘
if t >= t0:
idx = i; break # 更新 idx
if idx == -1: print("Too Late")
else: print(f"{movie[idx][0]:02d} {movie[idx][1]:02d}")
C++ 程式碼
使用時間約為 2 ms,記憶體約為 100 kB,通過測試。
#include <cstdio>
using namespace std;
int main() {
int n; // n 部電影
while(scanf("%d", &n) != EOF) {
int movie[n][2]; // 電影開場時刻
for(int i=0; i<n; i++) scanf("%d %d", &movie[i][0], &movie[i][1]);
int h0, m0; scanf("%d %d", &h0, &m0); // 現在的時刻
int t0 = h0*60 + m0 + 20; // 現在的時刻加 20 分鐘,並以分鐘為單位
int idx = -1; // 第 idx 部電影
for(int i=0; i<n; i++) { // 依序讀取電影開場時刻
int t = movie[i][0]*60 + movie[i][1]; // 電影開場時刻換成分鐘
if (t >= t0) {
idx = i; break; // 更新 idx
}
}
if (idx == -1) printf("Too Late\n");
else printf("%02d %02d", movie[idx][0], movie[idx][1]);
}
return 0;
}
沒有留言:
張貼留言