Pagini recente » Cod sursa (job #2603593) | Cod sursa (job #3237578) | Cod sursa (job #440518) | Cod sursa (job #2165349) | Cod sursa (job #905202)
Cod sursa(job #905202)
#include <iostream>
#include <fstream>
////https://infoarena.ro/problema/energii
using namespace std;
ifstream in ("energii.in");
ofstream out ("energii.out");
int g,w,et,e[10001],c[10001],cost[15001];
int calculeaza()
{
int i,j,inf,min;
inf=30000;
for(i=1;i<=w;i++)
cost[i]=inf;
for(i=1;i<=g;i++)
for(j=w;j>=0;j--)
if(cost[j]!=inf && cost[j]+c[i]<cost[j+e[i]])
cost[j+e[i]]=cost[j]+c[i];
min=inf;
for(i=w;i<=15000;i++)
if(cost[i]<min && cost[i]!=0) min=cost[i];
return min;
}
int main()
{
int i,j,ok=0;
in>>g>>w;
for(i=1;i<=g;i++)
in>>e[i]>>c[i];
for(i=1;i<=g;i++)
et+=e[i];
if(ok==0)
if(et<w)out<<"-1";
else out<<calculeaza();
return 0;
}