Cod sursa(job #2293984)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 1 decembrie 2018 19:33:49
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 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 ;
    
    while ( n -- )
    {
        int x , y ; f >> x >> y ;
        
        for ( int i = 1 ; i <= k ; ++ i )

            
            if ( i < x )   t [ n % 2 ][ i ] =  t [ ( n + 1 )% 2 ][ i ] ;
          
            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 ;
}