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
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 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