Submission #65277175


Source Code Expand

Copy
from collections import Counter
def f(A, D):
N = len(A)
cnt = Counter(A)
if D == 0:
return N - len(cnt)
buck= {}
for v in cnt:
r = v % D
buck.setdefault(r, []).append(v)
def solve(bl):
w = [cnt[v] for v in bl]
m = len(w)
if m == 1:
return w[0]
dp0, dp1 = w[0], max(w[0], w[1])
for i in range(2, m):
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
from collections import Counter

def f(A, D):
    N = len(A)
    cnt = Counter(A)

    if D == 0:
        return N - len(cnt)

    buck= {}
    for v in cnt:
        r = v % D
        buck.setdefault(r, []).append(v)

    def solve(bl):
        w = [cnt[v] for v in bl]
        m = len(w)
        if m == 1:
            return w[0]
        dp0, dp1 = w[0], max(w[0], w[1])
        for i in range(2, m):
            dp0, dp1 = dp1, max(dp1, dp0 + w[i])
        return dp1

    keep = 0
    for vs in buck.values():
        vs.sort()
        bl=[vs[0]]
        for v in vs[1:]:
            if v-bl[-1]==D:
                bl.append(v)
            else:
                keep+=solve(bl)
                bl=[v]
        keep+=solve(bl)

    return N-keep


if __name__ == "__main__":
    import sys
    input = sys.stdin.readline
    N, D = map(int, input().split())
    A = list(map(int, input().split()))
    print(f(A,D))

Submission Info

Submission Time
Task D - Forbidden Difference
User kotafuku
Language Python (PyPy 3.10-v7.3.12)
Score 425
Code Size 964 Byte
Status AC
Exec Time 196 ms
Memory 180344 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 425 / 425
Status
AC × 3
AC × 40
Set Name Test Cases
Sample 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt
All 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.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, 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, 02_handmade_01.txt, 02_handmade_02.txt, 02_handmade_03.txt, 02_handmade_04.txt, 02_handmade_05.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 66 ms 76760 KiB
00_sample_02.txt AC 67 ms 76748 KiB
00_sample_03.txt AC 66 ms 76748 KiB
01_random_01.txt AC 94 ms 104120 KiB
01_random_02.txt AC 71 ms 81372 KiB
01_random_03.txt AC 93 ms 104212 KiB
01_random_04.txt AC 76 ms 89928 KiB
01_random_05.txt AC 93 ms 104420 KiB
01_random_06.txt AC 89 ms 101484 KiB
01_random_07.txt AC 92 ms 104524 KiB
01_random_08.txt AC 82 ms 96640 KiB
01_random_09.txt AC 94 ms 104112 KiB
01_random_10.txt AC 91 ms 101936 KiB
01_random_11.txt AC 93 ms 104076 KiB
01_random_12.txt AC 87 ms 99664 KiB
01_random_13.txt AC 93 ms 104056 KiB
01_random_14.txt AC 77 ms 92388 KiB
01_random_15.txt AC 96 ms 103908 KiB
01_random_16.txt AC 73 ms 87648 KiB
01_random_17.txt AC 102 ms 106076 KiB
01_random_18.txt AC 96 ms 100812 KiB
01_random_19.txt AC 103 ms 106592 KiB
01_random_20.txt AC 91 ms 96216 KiB
01_random_21.txt AC 110 ms 106724 KiB
01_random_22.txt AC 111 ms 107308 KiB
01_random_23.txt AC 96 ms 105760 KiB
01_random_24.txt AC 89 ms 97328 KiB
01_random_25.txt AC 189 ms 152776 KiB
01_random_26.txt AC 95 ms 92104 KiB
01_random_27.txt AC 193 ms 143404 KiB
01_random_28.txt AC 99 ms 92312 KiB
01_random_29.txt AC 196 ms 180344 KiB
01_random_30.txt AC 188 ms 169404 KiB
01_random_31.txt AC 117 ms 135984 KiB
01_random_32.txt AC 104 ms 94944 KiB
02_handmade_01.txt AC 93 ms 108036 KiB
02_handmade_02.txt AC 94 ms 107892 KiB
02_handmade_03.txt AC 66 ms 77092 KiB
02_handmade_04.txt AC 66 ms 76832 KiB
02_handmade_05.txt AC 66 ms 76584 KiB


2025-06-30 (Mon)
12:07:56 +09:00