Pagini recente » Cod sursa (job #939721) | Cod sursa (job #470643) | Cod sursa (job #2662852) | Cod sursa (job #1838369) | Cod sursa (job #1754955)
#include <iostream>
#include <fstream>
#include <cstring>
#define NMAX 1010
#define INF 50000000
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int e[NMAX], c[NMAX], a[NMAX][NMAX], n, k, i, j;
int main()
{
f >> n >> k;
for( i = 1; i <= n; i++)
f >> e[i] >> c[i];
for(i = 0 ; i <= n ; ++ i)
for( j = 1 ; j <= k ; ++ j)
a[i][j] = INF;
for(i = 1; i <= n; i++)
for(j = 1; j <= k; j++){
a[i][j] = a[i - 1][j];
if(j >= e[i])
a[i][j] = min(a[i][j], a[i-1][j - e[i]] + c[i]);
else if(j <= e[i])
a[i][j] = min(a[i][j], c[i]);
}
if(a[n][k] == INF)
g << "-1";
else
g << a[n][k];
return 0;
}