Pagini recente » Cod sursa (job #2196861) | Cod sursa (job #3185821) | Cod sursa (job #1370315) | Cod sursa (job #955304) | Cod sursa (job #1426610)
#include <stdio.h>
#define gmax 5005
#define MAX 999999999
using namespace std;
int v[gmax], c[gmax], e[gmax];
int main()
{
freopen( "energii.in", "r", stdin );
freopen( "energii.out", "w", stdout );
int i, j, g, w, min=MAX, dr=0;
scanf( "%d%d", &g, &w );
for( i=1; i<=g; i++ )
scanf( "%d%d", &e[i], &c[i] );
for( i=1; i<=w; i++ )
v[i]=-1;
for( i=1; i<=g; i++ )
{
for( j=dr; j>=0; j-- )
if( v[j]!=-1 )
{
if( e[i]+j>=w )
{
if( v[j]+c[i]<min )
min=v[j]+c[i];
}
else
if( v[e[i]+j]==-1 || v[j]+c[i]<c[e[i]+j] )
v[e[i]+j]=v[j]+c[i];
}
if( e[i]+dr>=w )
dr=w-1;
else
dr=dr+e[i];
}
if( min==MAX )
printf( "-1" );
else
printf( "%d", min );
return 0;
}