Submission #3918434


Source Code Expand

N = int(input())

# 生の時刻テーブル
raw_table = []

# マージ済の時刻テーブル
rain_table=[]

# 入力を読む
for i in range(N):
  s, e = map(int, input().split('-'))
  raw_table.append([s, e])
  
# 生の時刻テーブルを開始時刻順にソート
raw_table.sort()
#print(raw_table)

# マージ処理
for s, e in raw_table:
  '''
  begin_hour, begin_min: 雨の開始時刻(時,分)
  end_hour, end_min: 雨の終了時刻(時,分)
  '''
  begin_hour, end_hour = int(s/100), int(e/100)
  minute_s, minute_e = s % 100, e % 100
  begin_min = minute_s - (minute_s % 5)
  if minute_e % 5 != 0:
  	end_min = minute_e + (5 - (minute_e % 5))
  else:
    end_min = minute_e
  # ただし,終了時刻(分)が'60'の場合は,hourを更新しなくてはならない
  if end_min >= 60:
    end_hour += 1
    end_min = 0
    
  # now_begin: 丸め済の開始時刻, last_end: 丸め済の終了時刻
  now_begin = begin_hour*100+begin_min
  now_end = end_hour*100+end_min

  # rain_tableが空なら今の開始-終了時刻のペアを登録
  if len(rain_table) == 0:
    rain_table.append([now_begin, now_end])

  else:
    # rain_tableの直前の要素を取得
    # last_begin: 直前の開始時刻, last_end: 直前の終了時刻
    last_begin, last_end = rain_table[-1]
    
    # もし現在の開始時刻が直前の終了時刻以前ならマージする
    if now_begin <= last_end:
      if last_end <= now_end: # 現在の終了時刻の方が遅い場合のみ上書きする
        rain_table[-1] = [last_begin, now_end]
    else:
      rain_table.append([now_begin, now_end])

# 最終出力
for s, e in rain_table:
  print('%s-%s' % (str(s).zfill(4), str(e).zfill(4)))

Submission Info

Submission Time
Task D - 感雨時刻の整理
User cucumislily
Language Python (3.4.3)
Score 100
Code Size 1787 Byte
Status AC
Exec Time 183 ms
Memory 8116 KB

Judge Result

Set Name all
Score / Max Score 100 / 100
Status
AC × 48
Set Name Test Cases
all 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, cho_cho_chokudai.txt, chokudai_ga_cho.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 17 ms 3064 KB
00_sample_02.txt AC 17 ms 3064 KB
00_sample_03.txt AC 17 ms 3064 KB
cho_cho_chokudai.txt AC 166 ms 7124 KB
chokudai_ga_cho.txt AC 148 ms 7744 KB
test_01.txt AC 18 ms 3064 KB
test_02.txt AC 18 ms 3064 KB
test_03.txt AC 18 ms 3064 KB
test_04.txt AC 18 ms 3064 KB
test_05.txt AC 18 ms 3064 KB
test_06.txt AC 18 ms 3064 KB
test_07.txt AC 18 ms 3064 KB
test_08.txt AC 18 ms 3064 KB
test_09.txt AC 20 ms 3064 KB
test_10.txt AC 20 ms 3064 KB
test_11.txt AC 20 ms 3064 KB
test_12.txt AC 19 ms 3064 KB
test_13.txt AC 18 ms 3064 KB
test_14.txt AC 20 ms 3064 KB
test_15.txt AC 21 ms 3064 KB
test_16.txt AC 18 ms 3064 KB
test_17.txt AC 20 ms 3064 KB
test_18.txt AC 18 ms 3064 KB
test_19.txt AC 19 ms 3064 KB
test_20.txt AC 19 ms 3064 KB
test_21.txt AC 181 ms 7896 KB
test_22.txt AC 176 ms 8020 KB
test_23.txt AC 177 ms 8024 KB
test_24.txt AC 175 ms 8024 KB
test_25.txt AC 174 ms 8020 KB
test_26.txt AC 177 ms 7772 KB
test_27.txt AC 164 ms 7988 KB
test_28.txt AC 176 ms 7876 KB
test_29.txt AC 17 ms 3064 KB
test_30.txt AC 17 ms 3064 KB
test_31.txt AC 41 ms 3692 KB
test_32.txt AC 18 ms 3064 KB
test_33.txt AC 124 ms 6108 KB
test_34.txt AC 17 ms 3064 KB
test_35.txt AC 18 ms 3064 KB
test_36.txt AC 177 ms 8116 KB
test_37.txt AC 183 ms 7888 KB
test_38.txt AC 177 ms 7888 KB
test_39.txt AC 182 ms 8116 KB
test_40.txt AC 177 ms 7760 KB
test_41.txt AC 148 ms 7740 KB
test_42.txt AC 172 ms 7760 KB
test_43.txt AC 150 ms 7868 KB