Pagini recente » Cod sursa (job #2085061) | Cod sursa (job #2037100) | Cod sursa (job #2212749)
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int i,j,D[12001],E,p[12001],c[12001],n,minim;
int main(){
fin>>n>>E;
for(i=1;i<=n;i++)
fin>>p[i]>>c[i];
minim=2000000;
D[0]=1;
for(i=1;i<=n;i++)
for(j=E+11000;j>=0;j--)
if(D[j]!=0){
if(j==0){
if(D[j+p[i]]!=0)
D[j+p[i]]=min(D[j]+c[i]-1,D[j+p[i]]);
else
D[j+p[i]]+=D[j]+c[i]-1;
if(D[j+p[i]]<minim&&j+p[i]>=E)
minim=D[j+p[i]];
}else{
if(D[j+p[i]]!=0)
D[j+p[i]]=min(D[j]+c[i],D[j+p[i]]);
else
D[j+p[i]]+=D[j]+c[i];
if(D[j+p[i]]<minim&&j+p[i]>=E)
minim=D[j+p[i]];
}
}
if(minim==2000000)
fout<<-1;
else
fout<<minim;
return 0;
}