198402025-12-25 19:33:00birozsDinamitpython3Time limit exceeded 15/50500ms3480 KiB
def dinamit(sut,db):
    s = sut[:]
    for _ in range(db):
        maxpoz = s.index(max(s))
        s[maxpoz] = s[maxpoz] // 2
    return sum(s)
N,M,K = map(int,input().split())
T = []
for _ in range(N):
    sor = list(map(int,input().split()))
    T.append(sor)
#Q[i][j] a minimális érték a bal felső saroktól az adott pontig
Q = []
sor = [0] * M
for _ in range(N):
    Q.append(sor[:])

#Q első sorának j-edik eleme az első j szám összege
Q[0][0] = T[0][0]
for j in range(1,M):
    Q[0][j] = Q[0][j-1] + T[0][j]
#Q első oszlopának i-edik eleme az első i szám összege
for i in range(1,N):
    Q[i][0] = Q[i-1][0] + T[i][0]

azonos = True
k = T[0][1]
for i in range(N-1):
    for j in range(1,M):
        if T[i][j] != k:
            azonos = False

if K == 0:
    for i in range(1,N):
        for j in range(1,M):
            if Q[i][j-1] < Q[i-1][j]:
                Q[i][j] = Q[i][j-1] + T[i][j]
            else:
                Q[i][j] = Q[i-1][j] + T[i][j]
    print(Q[N-1][M-1])
elif azonos:
    oszlop = []
    for i in range(N):
        oszlop.append(T[i][0])
    ut = oszlop + T[N-1][1:]
    for _ in range(K):
        maxpoz = ut.index(max(ut))
        ut[maxpoz] = ut[maxpoz] // 2
    print(sum(ut))
else:
    ut = [0] * (N + M - 1)
    sor = [[0,0]]
    knylmtln = (N + M) * 10**6
    while sor:
        akt = sor.pop()
        ut[akt[0]+akt[1]]=T[akt[0]][akt[1]]
        if akt[0] < N-1:
            sor.append([akt[0]+1,akt[1]])
        if akt[1] < M-1:
            sor.append([akt[0],akt[1]+1])
        if akt[0] == N - 1 and akt[1] == M - 1:
            robbant = dinamit(ut,K)
            if  robbant < knylmtln:
                knylmtln = robbant
    print(knylmtln)

    



SubtaskSumTestVerdictTimeMemory
base15/50
1Accepted0/017ms3144 KiB
2Time limit exceeded0/0493ms3352 KiB
3Accepted2/218ms3480 KiB
4Accepted2/218ms3384 KiB
5Accepted3/318ms3400 KiB
6Accepted3/317ms3480 KiB
7Accepted2/217ms3288 KiB
8Accepted3/317ms3352 KiB
9Time limit exceeded0/2500ms3256 KiB
10Time limit exceeded0/2500ms3124 KiB
11Time limit exceeded0/3486ms3124 KiB
12Time limit exceeded0/3474ms3132 KiB
13Time limit exceeded0/2488ms3124 KiB
14Time limit exceeded0/3488ms3276 KiB
15Time limit exceeded0/2500ms3380 KiB
16Time limit exceeded0/3486ms3380 KiB
17Time limit exceeded0/2486ms3380 KiB
18Time limit exceeded0/3486ms3268 KiB
19Time limit exceeded0/2500ms3244 KiB
20Time limit exceeded0/3483ms3380 KiB
21Time limit exceeded0/2490ms3380 KiB
22Time limit exceeded0/3490ms3380 KiB