193512025-12-04 23:48:5242Járdakövezés háromféle elemmelpypy3Elfogadva 30/3054ms21568 KiB
T = [
    [2,2,2,3],
    [1,0,1,1],
    [1,1,0,1],
    [1,0,0,0]
]

def mat_mult(A,B):
    n = 4
    C = [[0]*n for _ in range(n)]
    for i in range(n):
        for k in range(n):
            ak = A[i][k]
            if ak == 0: continue
            for j in range(n):
                C[i][j] += ak * B[k][j]
                C[i][j] %= 2023
    return C

def mat_pow(A, e):
    n = 4
    R = [[1 if i==j else 0 for j in range(n)] for i in range(n)]
    B = [row[:] for row in A]
    while e > 0:
        if e & 1:
            R = mat_mult(R, B)
        B = mat_mult(B, B)
        e //= 2
    return R

def ways(N):
    if N == 0:
        return 1
    M = mat_pow(T, N)
    return M[0][0]

print(ways(int(input())))
RészfeladatÖsszpontTesztVerdiktIdőMemória
base30/30
1Elfogadva0/041ms19868 KiB
2Elfogadva0/046ms19596 KiB
3Elfogadva2/241ms19556 KiB
4Elfogadva2/243ms19624 KiB
5Elfogadva2/239ms19692 KiB
6Elfogadva2/239ms19692 KiB
7Elfogadva2/243ms19692 KiB
8Elfogadva2/243ms19684 KiB
9Elfogadva2/250ms21480 KiB
10Elfogadva2/254ms21480 KiB
11Elfogadva2/246ms21560 KiB
12Elfogadva3/354ms21480 KiB
13Elfogadva3/352ms21560 KiB
14Elfogadva3/346ms21480 KiB
15Elfogadva3/354ms21568 KiB