#include <iostream>
#include <limits>
#include <vector>
using namespace std;
using ll = long long;
int main() {
ll n, m, k;
cin >> n >> m >> k;
vector<vector<ll>> cost(n, vector<ll>(m));
for (ll i = 0; i < n; i++) {
for (ll j = 0; j < m; j++) {
cin >> cost[i][j];
}
}
vector<vector<vector<ll>>> dp(n, vector<vector<ll>>(m, vector<ll>(k + 1, numeric_limits<ll>::max() / 2 - 1)));
for (ll i = 0; i <= k; i++) {
dp[0][0][i] = cost[0][0] / max(2 * i, 1ll);
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
for (int x = 0; x <= k; x++) {
for (int y = 0; y <= k - x; y++) {
if (i + 1 < n) {
ll c = cost[i + 1][j] / max(2ll * y, 1ll);
dp[i + 1][j][x + y] = min(dp[i + 1][j][x + y], dp[i][j][x] + c);
}
if (j + 1 < n) {
ll c = cost[i][j + 1] / max(2ll * y, 1ll);
dp[i][j + 1][x + y] = min(dp[i][j + 1][x + y], dp[i][j][x] + c);
}
}
}
}
}
cout << dp[n - 1][m - 1][k] << endl;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 35/50 | ||||||
1 | Elfogadva | 0/0 | 2ms | 1800 KiB | |||
2 | Elfogadva | 0/0 | 48ms | 2936 KiB | |||
3 | Elfogadva | 2/2 | 2ms | 1956 KiB | |||
4 | Elfogadva | 2/2 | 2ms | 1980 KiB | |||
5 | Elfogadva | 3/3 | 2ms | 1992 KiB | |||
6 | Elfogadva | 3/3 | 2ms | 2000 KiB | |||
7 | Elfogadva | 2/2 | 39ms | 2988 KiB | |||
8 | Elfogadva | 3/3 | 39ms | 3004 KiB | |||
9 | Hibás válasz | 0/2 | 3ms | 1980 KiB | |||
10 | Hibás válasz | 0/2 | 3ms | 1980 KiB | |||
11 | Hibás válasz | 0/3 | 4ms | 1988 KiB | |||
12 | Hibás válasz | 0/3 | 3ms | 1992 KiB | |||
13 | Hibás válasz | 0/2 | 10ms | 2228 KiB | |||
14 | Hibás válasz | 0/3 | 9ms | 2232 KiB | |||
15 | Elfogadva | 2/2 | 39ms | 3052 KiB | |||
16 | Elfogadva | 3/3 | 41ms | 3060 KiB | |||
17 | Elfogadva | 2/2 | 41ms | 3072 KiB | |||
18 | Elfogadva | 3/3 | 39ms | 3080 KiB | |||
19 | Elfogadva | 2/2 | 39ms | 3092 KiB | |||
20 | Elfogadva | 3/3 | 41ms | 3112 KiB | |||
21 | Elfogadva | 2/2 | 41ms | 3124 KiB | |||
22 | Elfogadva | 3/3 | 37ms | 3128 KiB |