Pagini recente » Cod sursa (job #787601) | Cod sursa (job #2713171) | Cod sursa (job #2286837) | Cod sursa (job #482499) | Cod sursa (job #459323)
Cod sursa(job #459323)
#include<fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int P[5001],C[1001],E[1001];
int i,j,maxim=0;
int W,G;
int Cmax = 99999;
int main ()
{
in>>G;
in>>W;
for(i=0;i<G;i++)
in>>E[i]>>C[i];
P[0]=1;
for(i=0;i<G;i++)
{
for(j=maxim;j>=0;j--)
if(P[j])
{
if(j+E[i]<=W)
{
if(maxim<j+E[i])
maxim = j+E[i];
if(P[j+E[i]]==0||P[j+E[i]]>P[j]+C[i])
P[j+E[i]]=P[j]+C[i];
}
else
if(P[j]+C[i]<Cmax)
Cmax=P[j]+C[i];
}
}
if(P[W]>Cmax)
P[W]=Cmax;
if(P[W])
out<<P[W]-1<<'\n';
else
out<<"-1\n";
return 0;
}