Pagini recente » Cod sursa (job #1370513) | Cod sursa (job #388117) | Cod sursa (job #2441777) | Cod sursa (job #269044) | Cod sursa (job #2294009)
#include <iostream>
#include <fstream>
using namespace std ;
const int NR = 5005 ;
const int oo = ( 1 << 30 ) ;
ifstream f ("energii.in") ;
ofstream g ("energii.out") ;
long long t [ 2 ][ NR ] ;
int main ()
{
int n , k ; f >> n >> k ;
for ( int i = 1 ; i <= k ; ++ i ) t [ n % 2 ][ i ] = oo , t [ ( n + 1 ) % 2 ][ i ] = oo ;
while ( n -- )
{
long long x , y ; f >> x >> y ;
for ( int i = 1 ; i <= k ; ++ i )
if ( i < x ) t [ n % 2 ][ i ] = min ( t [ ( n + 1 )% 2 ][ i ] , y ) ;
else t [ n % 2 ][ i ] = min ( t [ ( n + 1 ) % 2 ][ i ] , t [ ( n + 1 )% 2 ][ i - x ] + y ) ;
}
if ( t [ 0 ][ k ] == oo ) g << -1 << "\n" ;
else g << t [ 0 ][ k ] << "\n" ;
return 0 ;
}