Pagini recente » Cod sursa (job #570893) | Cod sursa (job #1931111) | Borderou de evaluare (job #2115280) | Cod sursa (job #350642) | Cod sursa (job #2973660)
#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);
}
if(profit[j]+v[i].p < profit[j+v[i].g])
profit[j+v[i].g]=profit[j] + v[i].p;
}
}
}
if(profit[G]==maxvalue)
{
cost[G]=-1;
}
fout << profit[G];
return 0;
}