Submission #62808958


Source Code Expand

Copy
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
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
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
AC × 3
AC × 28
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


2025-04-25 (Fri)
18:44:11 +00:00