Cod sursa(job #2294009)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 1 decembrie 2018 19:52:12
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#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 ;
}