94612024-02-22 08:57:33birozsFestés (50 pont)python3Időlimit túllépés 0/50703ms59184 KiB
N,M = map(int,input().split())
soronkent = list(map(int,input().split()))

matrix = []
for Oszlop in range(M):
    sor = list(map(int,input().split()))
    matrix.append(sor)

if N == 2:
    #Mindkét sor festve
    eset = [sum(soronkent)]
    #Csak első sor festve
    osszeg = soronkent[0]
    for Oszlop in range(M):
        osszeg += min([matrix[Oszlop][2],matrix[Oszlop][1]])
    eset.append(osszeg)
    #Csak második sor festve
    osszeg = soronkent[1]
    for Oszlop in range(M):
        osszeg += min([matrix[Oszlop][0],matrix[Oszlop][1]])
    eset.append(osszeg)
    #Nincs sor festve
    osszeg = 0
    for Oszlop in range(N):
        osszeg += min([matrix[Oszlop][0]+matrix[Oszlop][2],matrix[Oszlop][1]])
    eset.append(osszeg)
    print(min(eset))
if N == 3:
    #Minden sor festve
    eset = [sum(soronkent)]
    tools = [[0],[1],[2],[0,1],[0,2],[1,2],[]]
    check = [[0,3,5],[0,4],[1,5],[2],[1,4]]
    for sor in tools:
        lista = []
        osszeg = 0
        for x in sor:
            osszeg += soronkent[x]
        lista.append(osszeg)
        for Oszlop in range(M):
            valami = []
            for y in check:
                bennevan = False
                for z in sor:
                    if z in y:
                        bennevan = True
                if not bennevan:
                    seged = []
                    for j in y:
                        seged.append(matrix[Oszlop][j])
                    valami.append(sum(seged))
            lista.append(min(valami))
        eset.append(sum(lista))                                      
    print(min(eset))
if N == 4:
    eset = [sum(soronkent)]
    tools = [[0],[1],[2],[3],[0,1],[0,2],[0,3],[1,2],[1,3],[2,3],[0,1,2],[1,2,3],[0,2,3],[0,1,3],[]]
    check = [[0,4,7,9],[1,7,9],[0,5,9],[0,4,8],[1,8],[0,6],[2,9],[3],[1,6],[1,5,9],[2,8],[0,5,8],[2,6]]
    for sor in tools:
        lista = []
        osszeg = 0
        for x in sor:
            osszeg += soronkent[x]
        lista.append(osszeg)
        for Oszlop in range(M):
            valami = []
            for y in check:
                bennevan = False
                for z in sor:
                    if z in y:
                        bennevan = True
                if not bennevan:
                    seged = []
                    for j in y:
                        seged.append(matrix[Oszlop][j])
                    valami.append(sum(seged))
            lista.append(min(valami))
        eset.append(sum(lista))                                      
    print(min(eset))

RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Elfogadva0/018ms12032 KiB
2Elfogadva0/019ms12108 KiB
3Időlimit túllépés0/2703ms40264 KiB
4Hibás válasz0/237ms12676 KiB
5Hibás válasz0/3202ms13368 KiB
6Időlimit túllépés0/2666ms10276 KiB
7Időlimit túllépés0/2671ms56744 KiB
8Időlimit túllépés0/2679ms56384 KiB
9Időlimit túllépés0/2683ms56600 KiB
10Időlimit túllépés0/2690ms56880 KiB
11Időlimit túllépés0/2690ms57256 KiB
12Időlimit túllépés0/2670ms53156 KiB
13Időlimit túllépés0/2670ms53096 KiB
14Hibás válasz0/2400ms59184 KiB
15Hibás válasz0/3398ms59176 KiB
16Időlimit túllépés0/3684ms40684 KiB
17Időlimit túllépés0/2681ms41108 KiB
18Időlimit túllépés0/3676ms40020 KiB
19Időlimit túllépés0/2674ms49392 KiB
20Időlimit túllépés0/2674ms53332 KiB
21Időlimit túllépés0/2689ms56200 KiB
22Időlimit túllépés0/2684ms56604 KiB
23Időlimit túllépés0/2671ms57044 KiB
24Időlimit túllépés0/2657ms55232 KiB
25Időlimit túllépés0/2666ms58684 KiB