Pagini recente » Cod sursa (job #2832933) | Cod sursa (job #3154507) | Cod sursa (job #2169356) | Cod sursa (job #1557197) | Cod sursa (job #2973664)
#include<fstream>
using namespace std;
ifstream fin("energii.in");
fstream fout("energii.out");
const int N=5e3, P=6001;
int profit[P+1], maxvalue=1e9;
struct obiecte
{
int g;
int p;
} v[N+1];
int main()
{
int n, G;
fin >> n >> G;
for(int i=0; i<n; i++)
{
fin >> v[i].g >> v[i].p;
}
for(int i=1; i<=G; i++)
profit[i]=maxvalue;
profit[0]=0;
for(int i=0; i<n; i++)
{
for(int j=G-1; j>=0; j--)
{
if(profit[j]!=maxvalue)
{
if(j+v[i].g >= G)
{
profit[G]=min(profit[G], profit[j]+ v[i].p);
}
else
{
profit[j+v[i].g]=min(profit[j] + v[i].p, profit[j+v[i].g);
}
}
}
}
if(profit[G]==maxvalue)
{
profit[G]=-1;
}
fout << profit[G];
return 0;
}