Pagini recente » Cod sursa (job #425901) | Cod sursa (job #473031) | Cod sursa (job #1451616) | Cod sursa (job #865333) | Cod sursa (job #819721)
Cod sursa(job #819721)
#include<stdio.h>
#include<string.h>
long n , sum , d[ 3 ][ 5007 ];
long e[ 1007 ],c[ 1007 ];
int main()
{
long i , j ;
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%ld %ld" , &n , &sum);
for(i = 1 ; i <= n ; ++i )
scanf("%d %d" , &e[ i ] , &c[ i ]);
memset( d , 10001 , sizeof( d ) );
j = 1;
while(j <= n)
{
for(i = 1 ; i <= sum ; ++i )
if(i > e[ j ] && d[ 1 ][ i - e[ j ] ] + c[ j ] < d[ 1 ][ i ])
d[ 2 ][ i ]= c[ j ] + d[ 1 ][ i - e[ j ] ];
else
if( i <= e[ j ] && c[ j ] < d[ 1 ][ i ])
d[ 2 ][ i ] = c[ j ];
else
d[ 2 ][ i ] = d[ 1 ][ i ];
for(i = 1 ; i <= sum ; ++i )
d[ 1 ][ i ] = d[ 2 ][ i ];
j++;
}
if(d[ 1 ][ sum ] == 10001)
printf("-1\n");
else
printf("%d\n" , d[ 1 ][ sum ]);
return 0;
}