Submission #32514921


Source Code Expand

mod = 1_000_000_007

def mat_mul(a, b):
    m = [[0]*len(a) for _ in range(len(b[0]))]
    *b, = zip(*b)
    
    for i, r in enumerate(m):
        for j in range(len(r)):
            r[j] = sum([x * y % mod for x, y in zip(a[i], b[j])])
            r[j] %= mod
            
    return m
            
    
def mat_pow(a, n):
    ret = [[0]*len(a) for _ in range(len(a))]
    for i in range(len(a)):
        ret[i][i] = 1
    
    while n:
        if n & 1:
            ret = mat_mul(ret, a)
        a = mat_mul(a, a)
        n >>= 1

    return ret


def kaisetsu2(N, B, K, c):
    A = [[0]*B for _ in range(B)]
    
    for i in range(B):
        for j in c:
            nex = (i*10 + j) % B
            A[i][nex] += 1
    
    return mat_pow(A, N)[0][0]
  

N, B, K, *c = map(int, open(0).read().split())
print(kaisetsu2(N, B, K, c))

Submission Info

Submission Time
Task 005 - Restricted Digits(★7)
User arakaki_tokyo
Language PyPy3 (7.3.0)
Score 4
Code Size 875 Byte
Status TLE
Exec Time 5517 ms
Memory 151648 KiB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 0 1 / 1 3 / 3 0 / 3
Status
AC × 4
TLE × 1
AC × 19
AC × 30
AC × 30
TLE × 11
Set Name Test Cases
Sample subtask01_01_sample_01.txt, subtask01_01_sample_02.txt, subtask01_01_sample_03.txt, subtask02_01_sample_04.txt, subtask03_01_sample_05.txt
Subtask1 subtask01_01_sample_01.txt, subtask01_01_sample_02.txt, subtask01_01_sample_03.txt, subtask01_02_hand_01.txt, subtask01_02_hand_02.txt, subtask01_02_hand_03.txt, subtask01_02_hand_04.txt, subtask01_02_hand_05.txt, subtask01_02_hand_06.txt, subtask01_02_hand_07.txt, subtask01_02_hand_08.txt, subtask01_03_random_01.txt, subtask01_03_random_02.txt, subtask01_03_random_03.txt, subtask01_03_random_04.txt, subtask01_03_random_05.txt, subtask01_03_random_06.txt, subtask01_03_random_07.txt, subtask01_04_max_07.txt
Subtask2 subtask01_01_sample_01.txt, subtask01_01_sample_02.txt, subtask01_01_sample_03.txt, subtask01_02_hand_01.txt, subtask01_02_hand_02.txt, subtask01_02_hand_03.txt, subtask01_02_hand_04.txt, subtask01_02_hand_05.txt, subtask01_02_hand_06.txt, subtask01_02_hand_07.txt, subtask01_02_hand_08.txt, subtask01_03_random_01.txt, subtask01_03_random_02.txt, subtask01_03_random_03.txt, subtask01_03_random_04.txt, subtask01_03_random_05.txt, subtask01_03_random_06.txt, subtask01_03_random_07.txt, subtask01_04_max_07.txt, subtask02_01_sample_04.txt, subtask02_05_random_01.txt, subtask02_05_random_02.txt, subtask02_05_random_03.txt, subtask02_05_random_04.txt, subtask02_05_random_05.txt, subtask02_05_random_06.txt, subtask02_05_random_07.txt, subtask02_06_max_07.txt, subtask02_07_slow_doubling_killer_01.txt, subtask02_07_slow_doubling_killer_02.txt
Subtask3 subtask01_01_sample_01.txt, subtask01_01_sample_02.txt, subtask01_01_sample_03.txt, subtask01_02_hand_01.txt, subtask01_02_hand_02.txt, subtask01_02_hand_03.txt, subtask01_02_hand_04.txt, subtask01_02_hand_05.txt, subtask01_02_hand_06.txt, subtask01_02_hand_07.txt, subtask01_02_hand_08.txt, subtask01_03_random_01.txt, subtask01_03_random_02.txt, subtask01_03_random_03.txt, subtask01_03_random_04.txt, subtask01_03_random_05.txt, subtask01_03_random_06.txt, subtask01_03_random_07.txt, subtask01_04_max_07.txt, subtask02_01_sample_04.txt, subtask02_05_random_01.txt, subtask02_05_random_02.txt, subtask02_05_random_03.txt, subtask02_05_random_04.txt, subtask02_05_random_05.txt, subtask02_05_random_06.txt, subtask02_05_random_07.txt, subtask02_06_max_07.txt, subtask02_07_slow_doubling_killer_01.txt, subtask02_07_slow_doubling_killer_02.txt, subtask03_01_sample_05.txt, subtask03_08_random_01.txt, subtask03_08_random_02.txt, subtask03_08_random_03.txt, subtask03_08_random_04.txt, subtask03_08_random_05.txt, subtask03_08_random_06.txt, subtask03_08_random_07.txt, subtask03_09_max_07.txt, subtask03_10_slow_doubling_killer_01.txt, subtask03_10_slow_doubling_killer_02.txt
Case Name Status Exec Time Memory
subtask01_01_sample_01.txt AC 66 ms 64076 KiB
subtask01_01_sample_02.txt AC 52 ms 61820 KiB
subtask01_01_sample_03.txt AC 78 ms 73180 KiB
subtask01_02_hand_01.txt AC 54 ms 61604 KiB
subtask01_02_hand_02.txt AC 51 ms 61688 KiB
subtask01_02_hand_03.txt AC 49 ms 61580 KiB
subtask01_02_hand_04.txt AC 73 ms 73236 KiB
subtask01_02_hand_05.txt AC 51 ms 61812 KiB
subtask01_02_hand_06.txt AC 53 ms 62092 KiB
subtask01_02_hand_07.txt AC 67 ms 71236 KiB
subtask01_02_hand_08.txt AC 51 ms 61600 KiB
subtask01_03_random_01.txt AC 73 ms 73404 KiB
subtask01_03_random_02.txt AC 73 ms 73600 KiB
subtask01_03_random_03.txt AC 76 ms 73444 KiB
subtask01_03_random_04.txt AC 75 ms 73276 KiB
subtask01_03_random_05.txt AC 77 ms 73704 KiB
subtask01_03_random_06.txt AC 75 ms 73684 KiB
subtask01_03_random_07.txt AC 77 ms 73532 KiB
subtask01_04_max_07.txt AC 74 ms 73900 KiB
subtask02_01_sample_04.txt AC 99 ms 74096 KiB
subtask02_05_random_01.txt AC 85 ms 74340 KiB
subtask02_05_random_02.txt AC 93 ms 73760 KiB
subtask02_05_random_03.txt AC 54 ms 62492 KiB
subtask02_05_random_04.txt AC 94 ms 73452 KiB
subtask02_05_random_05.txt AC 97 ms 73692 KiB
subtask02_05_random_06.txt AC 101 ms 73672 KiB
subtask02_05_random_07.txt AC 101 ms 73792 KiB
subtask02_06_max_07.txt AC 113 ms 73652 KiB
subtask02_07_slow_doubling_killer_01.txt AC 117 ms 74052 KiB
subtask02_07_slow_doubling_killer_02.txt AC 120 ms 73836 KiB
subtask03_01_sample_05.txt TLE 5517 ms 135080 KiB
subtask03_08_random_01.txt TLE 5516 ms 116984 KiB
subtask03_08_random_02.txt TLE 5517 ms 126072 KiB
subtask03_08_random_03.txt TLE 5517 ms 151648 KiB
subtask03_08_random_04.txt TLE 5517 ms 130536 KiB
subtask03_08_random_05.txt TLE 5517 ms 135480 KiB
subtask03_08_random_06.txt TLE 5517 ms 143712 KiB
subtask03_08_random_07.txt TLE 5517 ms 142116 KiB
subtask03_09_max_07.txt TLE 5517 ms 142084 KiB
subtask03_10_slow_doubling_killer_01.txt TLE 5517 ms 144072 KiB
subtask03_10_slow_doubling_killer_02.txt TLE 5517 ms 145152 KiB