Pagini recente » Cod sursa (job #2370596) | Cod sursa (job #930201) | Cod sursa (job #170926) | Cod sursa (job #1782925) | Cod sursa (job #1747478)
#include <iostream>
#include <fstream>
#include <limits.h>
#define NMAX 1010
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
unsigned long a[NMAX][NMAX];
int e[NMAX],c[NMAX];
int emin,n,esum;
// unsolved
int main()
{
f >> n >> emin;
for(int i=0; i<n; i++)
{
f >> e[i] >> c[i];
esum+=e[i];
}
for(int i=0;i<=n;i++)
for(int j=1;j<=emin;j++)
a[i][j] = ULONG_MAX;
for(int i=1;i<=n;i++){
for(int w=1;w<=emin;w++){
a[i][w] = a[i-1][w];
if(w >= e[i-1]) a[i][w] = min(a[i][w],a[i-1][w-e[i-1]] + c[i-1]);
else a[i][w] = min(a[i][w],(unsigned long)c[i-1]);
}
}
if(a[n][emin] == ULONG_MAX) g << -1;
else g << a[n][emin];
return 0;
}