Submission #3064342
Source Code Expand
import datetime rainTime = [] sorted_rainTime = [] sorted_rainTime2 = [] linking_rainTime = [] x2Flag = False num = int(input()) for i in range(num): x = input().split("-") #降り始めと終わりにわける x1 = x[0][0:2] + ":" + x[0][2:4] st1 = datetime.datetime.strptime(x1, '%H:%M') x2 = x[1][0:2] + ":" + x[1][2:4] if x2 == "24:00": x2 = "00:00" x2Flag = True st2 = datetime.datetime.strptime(x2, '%H:%M') if x2Flag == True: st2 = st2 + datetime.timedelta(days=1) x2Flag = False #print(st1) #print(st2) if 0 < int(x[0][3:4]) < 5 :#降り始めの丸め st1 = st1 - datetime.timedelta(minutes=int(x[0][3:4])) elif 5 < int(x[0][3:4]) < 10: st1 = st1 - datetime.timedelta(minutes=int(x[0][3:4]) - 5) if 0 < int(x[1][3:4]) < 5 :#降り終わりの丸め st2 = st2 + datetime.timedelta(minutes=5 - int(x[1][3:4])) elif 5 < int(x[1][3:4]) <= 10: st2 = st2 + datetime.timedelta(minutes=int(10 - int(x[1][3:4]))) rainTime.append([st1,st2]) if num == 1: tstr = rainTime[0][0].strftime('%H%M') + "-" + rainTime[0][1].strftime('%H%M').replace("0000","2400") print(tstr) else: #降り始めが早い順番に並べ替える sorted_rainTime = sorted(rainTime) """ for x in sorted_rainTime: print(x[0],x[1]) """ box = 0 Flag = False endTimeBox = sorted_rainTime[0][1] #print(len(sorted_rainTime),777) for i in range(len(sorted_rainTime)): #print(endTimeBox, 1) #print(i,3) #print(sorted_rainTime[i + 1][0],2) if i + 1 != len(sorted_rainTime) and endTimeBox >= sorted_rainTime[i + 1][0]:#現在の降り終わり時間がi+1の降り始めを超えていれば Flag = True #print(i,9) #print(sorted_rainTime[i][1],4) #print(endTimeBox, 1) #print(sorted_rainTime[i][1],2) if endTimeBox < sorted_rainTime[i + 1][1]:#現在の降り終わり時間よりi+1の降り終わり時間が遅ければ更新する endTimeBox = sorted_rainTime[i + 1][1] else: if Flag == True: #print(sorted_rainTime[box][0],box) sorted_rainTime2.append([sorted_rainTime[box][0],endTimeBox])#ここのboxが問題 if i + 1 != len(sorted_rainTime): endTimeBox = sorted_rainTime[i + 1][1] #ここで入れる? else: sorted_rainTime2.append([sorted_rainTime[i][0],sorted_rainTime[i][1]]) if i + 1 != len(sorted_rainTime): endTimeBox = sorted_rainTime[i + 1][1] #ここで入れる? box = i + 1 #print(box) Flag = False #sorted_rainTime = [x for x in sorted_rainTime if x]#内包表記 #print(sorted_rainTime) for x in range(len(sorted_rainTime2)): #print(str(sorted_rainTime[x][0].hour) + str(sorted_rainTime[x][0].minute) + "-") tstr = sorted_rainTime2[x][0].strftime('%H%M') + "-" + sorted_rainTime2[x][1].strftime('%H%M').replace("0000","2400") print(tstr)
Submission Info
Submission Time | |
---|---|
Task | D - 感雨時刻の整理 |
User | maron |
Language | Python (3.4.3) |
Score | 100 |
Code Size | 2891 Byte |
Status | AC |
Exec Time | 1214 ms |
Memory | 10580 KB |
Judge Result
Set Name | all | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
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 | 33 ms | 4588 KB |
00_sample_02.txt | AC | 30 ms | 4716 KB |
00_sample_03.txt | AC | 30 ms | 4332 KB |
cho_cho_chokudai.txt | AC | 1183 ms | 10452 KB |
chokudai_ga_cho.txt | AC | 1173 ms | 10580 KB |
test_01.txt | AC | 36 ms | 4716 KB |
test_02.txt | AC | 37 ms | 4716 KB |
test_03.txt | AC | 36 ms | 4332 KB |
test_04.txt | AC | 36 ms | 4332 KB |
test_05.txt | AC | 37 ms | 4332 KB |
test_06.txt | AC | 39 ms | 4332 KB |
test_07.txt | AC | 36 ms | 4332 KB |
test_08.txt | AC | 35 ms | 4332 KB |
test_09.txt | AC | 53 ms | 4448 KB |
test_10.txt | AC | 57 ms | 4448 KB |
test_11.txt | AC | 49 ms | 4448 KB |
test_12.txt | AC | 47 ms | 4332 KB |
test_13.txt | AC | 39 ms | 4332 KB |
test_14.txt | AC | 52 ms | 4448 KB |
test_15.txt | AC | 55 ms | 4448 KB |
test_16.txt | AC | 37 ms | 4332 KB |
test_17.txt | AC | 52 ms | 4444 KB |
test_18.txt | AC | 38 ms | 4332 KB |
test_19.txt | AC | 46 ms | 4332 KB |
test_20.txt | AC | 49 ms | 4448 KB |
test_21.txt | AC | 1214 ms | 10100 KB |
test_22.txt | AC | 1184 ms | 10108 KB |
test_23.txt | AC | 1187 ms | 10092 KB |
test_24.txt | AC | 1172 ms | 10084 KB |
test_25.txt | AC | 1196 ms | 10076 KB |
test_26.txt | AC | 1168 ms | 10204 KB |
test_27.txt | AC | 1175 ms | 10108 KB |
test_28.txt | AC | 1182 ms | 10084 KB |
test_29.txt | AC | 30 ms | 4332 KB |
test_30.txt | AC | 33 ms | 4716 KB |
test_31.txt | AC | 203 ms | 5204 KB |
test_32.txt | AC | 33 ms | 4332 KB |
test_33.txt | AC | 782 ms | 8468 KB |
test_34.txt | AC | 30 ms | 4332 KB |
test_35.txt | AC | 42 ms | 4716 KB |
test_36.txt | AC | 1187 ms | 10204 KB |
test_37.txt | AC | 1167 ms | 10100 KB |
test_38.txt | AC | 1199 ms | 10076 KB |
test_39.txt | AC | 1184 ms | 10092 KB |
test_40.txt | AC | 1157 ms | 10204 KB |
test_41.txt | AC | 1002 ms | 10248 KB |
test_42.txt | AC | 1057 ms | 10572 KB |
test_43.txt | AC | 996 ms | 10060 KB |