#include<iostream>
#include<vector>
using namespace std;
const int NMAX = 300;
const int INF = 1e9 + 4;
int a[NMAX+1] , b[NMAX+1];
int dp[NMAX*NMAX+1][NMAX+1]; // dp[sum] = cate ore max sunt eligibile pt n*k
int main ()
{
int n, m, k;
cin >> n >> m >> k;
int sumA = 0;
bool bad = 0;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
sumA += a[i];
if (a[i] < k) bad = 1;
}
int sumB = 0;
for (int i = 1; i <= m; i++)
{
cin >> b[i];
sumB += b[i];
}
if (bad || sumB < sumA) {
cout << "Impossible\n";
return 0;
}
for (int i = 0; i <= max(sumA , sumB); i++)
{
for (int j = 0; j <= m; j++)
dp[i][j] = -INF;
}
dp[0][0] = 0;
for (int sum = 0; sum <= sumB; sum++)
{
for (int i = 1; i <= m; i++)
{
int addToNK = min(b[i] , n);
dp[sum+b[i]][i] = max(dp[sum+b[i]][i] , dp[sum][i-1] + addToNK);
}
dp[sum][i] = max(dp[sum][i] , dp[sum][i-1]);
}
int ans = 0;
for (int i = sumA; i <= sumB; i++)
{
if (dp[i][m] >= n*k)
{
ans = i - sumA;
break;
}
}
if (ans)
cout << ans << '\n';
else cout << "Impossible\n";
}
Compilation message
kitchen.cpp: In function 'int main()':
kitchen.cpp:52:17: error: 'i' was not declared in this scope
52 | dp[sum][i] = max(dp[sum][i] , dp[sum][i-1]);
| ^