Submission #70047262


Source Code Expand

Copy
import sys
sys.setrecursionlimit(1 << 25)
data = list(map(int, sys.stdin.read().split()))
it = iter(data)
N = next(it)
M = next(it)
A = [next(it) for _ in range(N)]
mid = N // 2
left_list = []
def dfs_left(i, s, last):
if i >= mid:
left_list.append((s % M, last))
return
dfs_left(i + 1, s, last)
dfs_left(i + 2, s + A[i], last or (i == mid - 1))
from collections import defaultdict
right0 = defaultdict(int)
right1 = defaultdict(int)
def dfs_right(i, s, first):
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
import sys
sys.setrecursionlimit(1 << 25)
data = list(map(int, sys.stdin.read().split()))
it = iter(data)
N = next(it)
M = next(it)
A = [next(it) for _ in range(N)]
mid = N // 2

left_list = []
def dfs_left(i, s, last):
    if i >= mid:
        left_list.append((s % M, last))
        return
    dfs_left(i + 1, s, last)
    dfs_left(i + 2, s + A[i], last or (i == mid - 1))

from collections import defaultdict
right0 = defaultdict(int)
right1 = defaultdict(int)
def dfs_right(i, s, first):
    if i >= N:
        if first:
            right1[s % M] += 1
        else:
            right0[s % M] += 1
        return
    dfs_right(i + 1, s, first)
    dfs_right(i + 2, s + A[i], first or (i == mid))

dfs_left(0, 0, False)
dfs_right(mid, 0, False)

res = 0
for s, last in left_list:
    target = (-s) % M
    if last:
        res += right0.get(target, 0)
    else:
        res += right0.get(target, 0) + right1.get(target, 0)
print(res)

Submission Info

Submission Time
Task F - Not Adjacent
User h1mazin
Language Python (CPython 3.11.4)
Score 525
Code Size 977 Byte
Status AC
Exec Time 2824 ms
Memory 422340 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 525 / 525
Status
AC × 3
AC × 53
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 11 ms 9264 KiB
00_sample_01.txt AC 12 ms 9336 KiB
00_sample_02.txt AC 12 ms 9320 KiB
01_random_03.txt AC 2815 ms 422076 KiB
01_random_04.txt AC 2822 ms 422124 KiB
01_random_05.txt AC 2709 ms 422044 KiB
01_random_06.txt AC 2789 ms 422088 KiB
01_random_07.txt AC 2740 ms 422076 KiB
01_random_08.txt AC 2763 ms 419684 KiB
01_random_09.txt AC 2749 ms 422340 KiB
01_random_10.txt AC 2761 ms 422040 KiB
01_random_11.txt AC 12 ms 9316 KiB
01_random_12.txt AC 22 ms 11232 KiB
01_random_13.txt AC 13 ms 9584 KiB
01_random_14.txt AC 131 ms 32848 KiB
01_random_15.txt AC 33 ms 13424 KiB
01_random_16.txt AC 2637 ms 362440 KiB
01_random_17.txt AC 2764 ms 422056 KiB
01_random_18.txt AC 2775 ms 422056 KiB
01_random_19.txt AC 2729 ms 422312 KiB
01_random_20.txt AC 1709 ms 236332 KiB
01_random_21.txt AC 2824 ms 420016 KiB
01_random_22.txt AC 2769 ms 422068 KiB
01_random_23.txt AC 2496 ms 362392 KiB
01_random_24.txt AC 12 ms 9400 KiB
01_random_25.txt AC 18 ms 10352 KiB
01_random_26.txt AC 22 ms 11188 KiB
01_random_27.txt AC 13 ms 9384 KiB
01_random_28.txt AC 38 ms 14676 KiB
01_random_29.txt AC 2289 ms 325984 KiB
01_random_30.txt AC 2535 ms 364280 KiB
01_random_31.txt AC 2353 ms 324892 KiB
01_random_32.txt AC 2147 ms 298072 KiB
01_random_33.txt AC 2336 ms 352184 KiB
01_random_34.txt AC 2319 ms 326152 KiB
01_random_35.txt AC 2456 ms 363516 KiB
01_random_36.txt AC 2406 ms 351896 KiB
01_random_37.txt AC 12 ms 9316 KiB
01_random_38.txt AC 11 ms 9332 KiB
01_random_39.txt AC 11 ms 9368 KiB
01_random_40.txt AC 11 ms 9276 KiB
01_random_41.txt AC 79 ms 20800 KiB
01_random_42.txt AC 1420 ms 162852 KiB
01_random_43.txt AC 1458 ms 162784 KiB
01_random_44.txt AC 1714 ms 220364 KiB
01_random_45.txt AC 1683 ms 220504 KiB
01_random_46.txt AC 1733 ms 221248 KiB
01_random_47.txt AC 1712 ms 222028 KiB
01_random_48.txt AC 1688 ms 222220 KiB
01_random_49.txt AC 11 ms 9336 KiB
01_random_50.txt AC 11 ms 9348 KiB
01_random_51.txt AC 11 ms 9360 KiB
01_random_52.txt AC 11 ms 9276 KiB


2025-10-14 (Tue)
21:21:27 +09:00