Pagini recente » Cod sursa (job #329915) | Cod sursa (job #1477195) | Cod sursa (job #843115) | Cod sursa (job #2116002) | Cod sursa (job #489404)
Cod sursa(job #489404)
# include <fstream>
# include <iostream>
# define DIM 1003
# define EMax 5003
# define infinit 1000000000
using namespace std;
int g, w, e[DIM], c[DIM], cost[EMax], cmin=infinit;
void read ()
{
ifstream fin ("energii.in");
fin>>g>>w;
for (int i=1;i<=g;++i)
fin>>e[i]>>c[i];
}
void solve ()
{
for(int i=1;i<=w;++i)
cost[i]=-1;
for(int i=1;i<=g;++i)
for(int j=w;j>=0;--j)
if (cost[j]!=-1)
{
if (j+e[i]>w)
if (cmin>cost[j]+c[i])
cmin=cost[j]+c[i];
if (j+e[i]<=w)
if (cost[j+e[i]]>cost[j]+c[i] || cost[j+e[i]]==-1)
cost[j+e[i]]=cost[j]+c[i];
}
}
int main ()
{
read ();
solve ();
ofstream fout ("energii.out");
if (cmin==infinit && cost[w]==-1)
fout<<"-1";
else
if (cost[w]==-1)
fout<<cmin;
else
if (cmin==infinit)
fout<<cost[w];
else
fout<<(cmin<cost[w]?cmin:cost[w]);
return 0;
}