Pagini recente » Cod sursa (job #483292) | Cod sursa (job #926611) | Cod sursa (job #2424215) | Cod sursa (job #3254139) | Cod sursa (job #249587)
Cod sursa(job #249587)
#include <fstream.h>
long long n,max,e[100000],a[100000],l,p[100000],c[100000],min,E;
ifstream in("energii.in");
ofstream out("energii.out");
int main(){
int i,j,k;
in>>n>>E;
for(i=1;i<=n;i++)
in>>a[i]>>c[i];
e[0] = -1;
max = 0;
for(i=1;i<=n;i++){
for(j=max;j>=0;j--)
if(e[j])
if(p[j+a[i]] <= p[j] + c[i]){
if(max < j+a[i])max = j+a[i];
e[j+a[i]] = a[i];
p[j+a[i]] = p[j] + c[i];
}
}
min = p[E];
if(e[max] >= E){
if(min)
k=1;
else k=0;
for(i=E;i<=max;i++){
if(!k)
if(p[i]){min = p[i];k=1;}
else if(p[i] && p[i]<min) min = p[i];
}
out<<min;
}else out<<"-1";
return 0;
}