Pagini recente » Cod sursa (job #3031795) | Cod sursa (job #2888695) | Cod sursa (job #1865335) | Cod sursa (job #2767501) | Cod sursa (job #288358)
Cod sursa(job #288358)
#include<stdio.h>
#define INF 10000002
int e[1002],c[1002],v[5002],i,n,w,sumc,p,j;
int min(int a, int b){
return a<b?a:b;
}
int main(){
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%i%i",&n,&w);
for(i=1;i<=n;i++){
scanf("%i%i",&e[i],&c[i]);
sumc+=e[i];
}
if(sumc<w) {
printf("%i",-1);
}
else{
v[0]=0;
for (i=1;i<=w;i++) v[i] = INF;
p=0;
for(i=1;i<=n;i++) //v[j] = costul minim de a obtine cant j de energie
for(j=p;j>=0;j--)
if(v[j]!=INF)
if (v[min(j+e[i],w)]>v[j]+c[i])
{
if (p<min(j+e[i],w)) p = min(j+e[i],w);
v[min(j+e[i],w)]=v[j]+c[i];
}
printf("%i",v[w]);
}
fclose(stdin);
fclose(stdout);
return 0;
}