Submission #70055732
Source Code Expand
from collections import defaultdict
def enum_left(a, m):
n = len(a)
out = []
def dfs(i, prev, s):
if i == n:
out.append((s % m, 1 if prev else 0))
return
dfs(i + 1, False, s)
if not prev:
dfs(i + 1, True, (s + a[i]) % m)
dfs(0, False, 0)
return out
def enum_right(a, m):
n = len(a)
out = []
def dfs(i, prev, s, first):
if i == n:
out.append((s % m, 1 if first else 0))
return
dfs(i + 1, False, s, first)
if not prev:
dfs(i + 1, True, (s + a[i]) % m, first or (i == 0))
dfs(0, False, 0, False)
return out
n, m = map(int, input().split())
a = list(map(int, input().split()))
mid = n // 2
l = a[:mid]
r = a[mid:]
left = enum_left(l, m)
right = enum_right(r, m)
cnt = defaultdict(int)
for s, first in right:
cnt[(s, first)] += 1
ans = 0
for s_l, last in left:
need = (-s_l) % m
if last == 1:
ans += cnt.get((need, 0), 0)
else:
ans += cnt.get((need, 0), 0) + cnt.get((need, 1), 0)
print(ans)
Submission Info
| Submission Time | |
|---|---|
| Task | F - Not Adjacent |
| User | uparupaaa |
| Language | Python (PyPy 3.10-v7.3.12) |
| Score | 525 |
| Code Size | 1044 Byte |
| Status | AC |
| Exec Time | 2439 ms |
| Memory | 604980 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 525 / 525 | ||||
| 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_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, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt, 01_random_49.txt, 01_random_50.txt, 01_random_51.txt, 01_random_52.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 68 ms | 76820 KiB |
| 00_sample_01.txt | AC | 71 ms | 76888 KiB |
| 00_sample_02.txt | AC | 71 ms | 76852 KiB |
| 01_random_03.txt | AC | 2405 ms | 604948 KiB |
| 01_random_04.txt | AC | 2341 ms | 604764 KiB |
| 01_random_05.txt | AC | 2380 ms | 604940 KiB |
| 01_random_06.txt | AC | 2366 ms | 604688 KiB |
| 01_random_07.txt | AC | 2323 ms | 604980 KiB |
| 01_random_08.txt | AC | 2439 ms | 576152 KiB |
| 01_random_09.txt | AC | 2311 ms | 604980 KiB |
| 01_random_10.txt | AC | 2298 ms | 604960 KiB |
| 01_random_11.txt | AC | 68 ms | 76832 KiB |
| 01_random_12.txt | AC | 131 ms | 87396 KiB |
| 01_random_13.txt | AC | 98 ms | 84480 KiB |
| 01_random_14.txt | AC | 172 ms | 123364 KiB |
| 01_random_15.txt | AC | 126 ms | 92556 KiB |
| 01_random_16.txt | AC | 2246 ms | 507924 KiB |
| 01_random_17.txt | AC | 2336 ms | 604716 KiB |
| 01_random_18.txt | AC | 2323 ms | 604724 KiB |
| 01_random_19.txt | AC | 2425 ms | 604860 KiB |
| 01_random_20.txt | AC | 1415 ms | 352244 KiB |
| 01_random_21.txt | AC | 2394 ms | 576128 KiB |
| 01_random_22.txt | AC | 2361 ms | 604668 KiB |
| 01_random_23.txt | AC | 2143 ms | 533548 KiB |
| 01_random_24.txt | AC | 93 ms | 83936 KiB |
| 01_random_25.txt | AC | 130 ms | 86300 KiB |
| 01_random_26.txt | AC | 132 ms | 87516 KiB |
| 01_random_27.txt | AC | 97 ms | 84172 KiB |
| 01_random_28.txt | AC | 119 ms | 91924 KiB |
| 01_random_29.txt | AC | 1957 ms | 444004 KiB |
| 01_random_30.txt | AC | 2130 ms | 519040 KiB |
| 01_random_31.txt | AC | 1994 ms | 451832 KiB |
| 01_random_32.txt | AC | 1831 ms | 439940 KiB |
| 01_random_33.txt | AC | 1974 ms | 508096 KiB |
| 01_random_34.txt | AC | 1958 ms | 413548 KiB |
| 01_random_35.txt | AC | 2095 ms | 518972 KiB |
| 01_random_36.txt | AC | 2034 ms | 488312 KiB |
| 01_random_37.txt | AC | 72 ms | 76852 KiB |
| 01_random_38.txt | AC | 71 ms | 76612 KiB |
| 01_random_39.txt | AC | 79 ms | 76992 KiB |
| 01_random_40.txt | AC | 69 ms | 76704 KiB |
| 01_random_41.txt | AC | 147 ms | 101080 KiB |
| 01_random_42.txt | AC | 1356 ms | 351980 KiB |
| 01_random_43.txt | AC | 1416 ms | 352120 KiB |
| 01_random_44.txt | AC | 1396 ms | 352060 KiB |
| 01_random_45.txt | AC | 1398 ms | 351840 KiB |
| 01_random_46.txt | AC | 1434 ms | 352428 KiB |
| 01_random_47.txt | AC | 1421 ms | 352168 KiB |
| 01_random_48.txt | AC | 1425 ms | 351868 KiB |
| 01_random_49.txt | AC | 68 ms | 76820 KiB |
| 01_random_50.txt | AC | 69 ms | 76808 KiB |
| 01_random_51.txt | AC | 69 ms | 77012 KiB |
| 01_random_52.txt | AC | 68 ms | 76764 KiB |