Pagini recente » Cod sursa (job #2968846) | Cod sursa (job #900913) | Cod sursa (job #3132579) | Cod sursa (job #2572685) | Cod sursa (job #488910)
Cod sursa(job #488910)
#include<stdio.h>
#define inf 1<<29
FILE*f=fopen("energii.in","r");
FILE*g=fopen("energii.out","w");
int N,S,e[1024],c[1024],cost[5500],i,j;
int main () {
fscanf(f,"%d%d",&N,&S);
for ( i = 1 ; i <= N ; ++i )
fscanf(f,"%d%d",&e[i],&c[i]);
cost[0] = 1 ;
for ( i = 1 ; i <= S ; ++i )
cost[i] = inf;
for ( i = 1 ; i <= N ; ++i ){
for ( j = S ; j >= 0 ; --j ) {
if ( cost[j] != inf ){
if ( j + e[i] <= S ){
if( cost[ j + e[i] ] > c[i] + cost[j] )
cost[ j + e[i] ] = c[i] + cost[j];
}
else
if ( cost[ S ] > c[i] + cost[j] )
cost[ S ] = c[i] + cost[j];
}
}
}
if ( cost[S] !=inf )
fprintf(g,"%d\n",cost[S] - 1);
else
fprintf(g,"-1\n");
fclose(f);
fclose(g);
return 0;
}