Submission #62808958
Source Code Expand
Copy
n=int(input())s=input()list_1 = []ct = 0l0 = [-1, -1]while True:if ct == n:breakif s[ct] == "1":if l0[0] == -1:l0[0] = ctwhile True:if ct == n:breakif s[ct] == "0":l0[1] = ct - 1list_1.append(l0)l0 = [-1, -1]breakif s[ct] == "1" and ct == n-1:l0[1] = ct
n=int(input()) s=input() list_1 = [] ct = 0 l0 = [-1, -1] while True: if ct == n: break if s[ct] == "1": if l0[0] == -1: l0[0] = ct while True: if ct == n: break if s[ct] == "0": l0[1] = ct - 1 list_1.append(l0) l0 = [-1, -1] break if s[ct] == "1" and ct == n-1: l0[1] = ct list_1.append(l0) l0 = [-1, -1] break ct += 1 ct += 1 ans = 0 left_list = [] right_list = [] if len(list_1) != 1: num = list_1[0][1] - list_1[0][0] + 1 for i in range(1, len(list_1)): left_list.append((list_1[i][0] - list_1[i - 1][1] - 1) * num) num += list_1[i][1] - list_1[i][0] + 1 num2 = list_1[-1][1] - list_1[-1][0] + 1 for j in range(len(list_1) - 2, -1,-1): right_list.append((list_1[j + 1][0] - list_1[j][1] - 1) * num2) num2 += list_1[j][1] - list_1[j][0] + 1 accuml = [0] accumr = [0] for i in range(len(right_list)): accuml.append(accuml[-1] + left_list[i]) accumr.append(accumr[-1] + right_list[i]) # print(left_list) # print(right_list) # print(accuml) # print(accumr) ans = accuml[-1] for i in range(len(accuml)): ans = min(ans, accumr[i] + accuml[-1-i]) print(ans)
Submission Info
Submission Time | |
---|---|
Task | D - Swap to Gather |
User | sushitempura |
Language | Python (PyPy 3.10-v7.3.12) |
Score | 425 |
Code Size | 1454 Byte |
Status | AC |
Exec Time | 118 ms |
Memory | 118412 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 425 / 425 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 02_random2_00.txt, 02_random2_01.txt, 02_random2_02.txt, 02_random2_03.txt, 02_random2_04.txt, 02_random2_05.txt, 03_handmade_00.txt, 03_handmade_01.txt, 03_handmade_02.txt, 03_handmade_03.txt, 03_handmade_04.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_00.txt | AC | 63 ms | 76432 KB |
00_sample_01.txt | AC | 62 ms | 76476 KB |
00_sample_02.txt | AC | 63 ms | 76272 KB |
01_random_00.txt | AC | 79 ms | 83040 KB |
01_random_01.txt | AC | 114 ms | 117224 KB |
01_random_02.txt | AC | 96 ms | 107732 KB |
01_random_03.txt | AC | 68 ms | 81956 KB |
01_random_04.txt | AC | 86 ms | 93512 KB |
01_random_05.txt | AC | 106 ms | 113660 KB |
01_random_06.txt | AC | 111 ms | 113448 KB |
01_random_07.txt | AC | 113 ms | 118120 KB |
01_random_08.txt | AC | 118 ms | 118412 KB |
01_random_09.txt | AC | 117 ms | 117936 KB |
01_random_10.txt | AC | 112 ms | 113352 KB |
01_random_11.txt | AC | 105 ms | 113732 KB |
01_random_12.txt | AC | 84 ms | 93280 KB |
01_random_13.txt | AC | 67 ms | 81780 KB |
02_random2_00.txt | AC | 69 ms | 81892 KB |
02_random2_01.txt | AC | 70 ms | 82184 KB |
02_random2_02.txt | AC | 74 ms | 81980 KB |
02_random2_03.txt | AC | 70 ms | 82116 KB |
02_random2_04.txt | AC | 70 ms | 82160 KB |
02_random2_05.txt | AC | 69 ms | 81752 KB |
03_handmade_00.txt | AC | 62 ms | 76456 KB |
03_handmade_01.txt | AC | 64 ms | 76608 KB |
03_handmade_02.txt | AC | 63 ms | 76536 KB |
03_handmade_03.txt | AC | 62 ms | 76592 KB |
03_handmade_04.txt | AC | 67 ms | 82016 KB |