Pagini recente » Cod sursa (job #2020417) | Cod sursa (job #2948243) | Cod sursa (job #1744380) | Cod sursa (job #87909) | Cod sursa (job #2156311)
#include <fstream>
#define nmax 1005
#define inf 2000000000
using namespace std;
fstream f1("energii.in", ios::in);
fstream f2("energii.out", ios::out);
int n, g, gr[nmax], ct[nmax], ctmin[2][5001], mini=inf;
int main()
{
int i, j;
f1>>n>>g;
for(i=1; i<=n; i++)
f1>>gr[i]>>ct[i];
ctmin[0][0]=0;
for(j=1; j<=g; j++)
ctmin[0][j]=inf;
for(i=1; i<=n; i++)
{
for(j=1; j<=g; j++)
{
ctmin[i%2][j]=ctmin[1-i%2][j];
if((j>=gr[i])&&(ctmin[1-i%2][j-gr[i]]+ct[i]< ctmin[i%2][j] )) ctmin[i%2][j]=ctmin[1-i%2][j-gr[i]]+ct[i];
}
}
mini=ctmin[n%2][g];
for(i=1; i<=n; i++)
if((mini> ct[i])&&(gr[i]>=g)) mini=ct[i]; ///cazul in care iei doar un obiect cu greutate >=w
if(mini==inf) f2<<-1;
else f2<<mini;
return 0;
}