Pagini recente » Cod sursa (job #1168305) | Cod sursa (job #1805889) | Cod sursa (job #1800835) | Cod sursa (job #1721819) | Cod sursa (job #1747117)
#include <iostream>
#include <fstream>
#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;
int main()
{
f >> n >> emin;
for(int i=0; i<n; i++)
{
f >> e[i] >> c[i];
a[0][i+1] = c[i];
a[i][0] = 0;
esum+=e[i];
}
if(esum >= emin)
{
for(int i=1; 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] = min(a[i-1][w],a[i-1][w-c[i-1]] + c[i-1]);
if(e[i-1] >= emin && a[i][w] == 0) a[i][w] = (unsigned long )c[i-1];
}
}
g << a[n][emin];
}
else
g << -1;
return 0;
}