Pagini recente » Cod sursa (job #2778649) | Cod sursa (job #2980638) | Cod sursa (job #1536942) | Cod sursa (job #1662857) | Cod sursa (job #249882)
Cod sursa(job #249882)
#include <fstream.h>
long long n,max,e[501000],a[1002],p[501000],c[1002],min,E;
ifstream in("energii.in");
ofstream out("energii.out");
int main(){
int i,j;
in>>n>>E;
for(i=1;i<=n;i++)
in>>a[i]>>c[i];
e[0] = -1;
max = 0;
min = 10000050;
for(i=1;i<=n;i++){
for(j=max;j>=0;j--)
if(e[j])
if(p[j+a[i]] >= p[j] + c[i] || !p[j+a[i]]){
if(max < j+a[i])max = j+a[i];
e[j+a[i]] = a[i];
p[j+a[i]] = p[j] + c[i];
if(p[j+a[i]]<min && j+a[i] >= E) min = p[j+a[i]];
}
}
if(max >= E && e[max]) out<<min;
else out<<"-1";
return 0;
}