CloudCoder Python feladatgyujtemeny/tornyok
A MathWikiből
A lap korábbi változatát látod, amilyen Csirke (vitalap | szerkesztései) 2015. szeptember 11., 04:55-kor történt szerkesztése után volt.
def tornyok(magassagok, k): n = len(magassagok) # Létrehozzuk az k*n-es táblázatot csupa 0 elemmel. tablazat = [[0 for j in range(n)] for i in range(k)] # tablazat[i][j] értékének reszfeladat(i+1, j+1) értékét # szeretnénk kiszámolni (a 0-tól indexelés miatt). tablazat[0][0] = magassagok[0] for j in range(1, n): tablazat[0][j] = max(magassagok[j], tablazat[0][j-1]) for i in range(1, k): for j in range(n): if magassagok[j] >= j: epit_osszeg = magassagok[j] else: epit_osszeg = magassagok[j] + tablazat[i-1][j - magassagok[j] - 1] nem_epit_osszeg = tablazat[i][j-1] tablazat[i][j] = max(epit_osszeg, nem_epit_osszeg) return tablazat[k-1][n-1]