Pagini recente » Cod sursa (job #3129043) | Cod sursa (job #387482) | Cod sursa (job #2154492) | Cod sursa (job #531666) | Cod sursa (job #1747370)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int a[1005], b[1005], v[1005][5005], n, k, i, j;
int main()
{
in >> n >> k;
for( i = 1; i <= n; i++)
in >> a[i] >> b[i];
for(i = 0 ; i <= n ; ++ i)
for( j = 1 ; j <= k ; ++ j)
v[i][j] = 10000000;
for(i = 1; i <= n; i++)
for(j = 1; j <= k; j++){
v[i][j] = v[i - 1][j];
if(j >= a[i])
v[i][j] = min(v[i][j], v[i-1][j - a[i]] + b[i]);
else if(j <= a[i])
v[i][j] = min(v[i][j], b[i]);
}
if(v[n][k] == 10000000)
out << "-1";
else
out << v[n][k];
return 0;
}