Cod sursa(job #1068421)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 28 decembrie 2013 12:39:28
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <cstdio>
#include <memory.h>
#include <algorithm>

#define Gmax 5005
#define INF 0x3f3f3f3f

using namespace std;

int N,CP,E,C,DP[Gmax];

int main()
{
    freopen( "energii.in" , "r" , stdin );
    freopen( "energii.out" ,"w" , stdout );

    scanf( "%d %d" , &N , &CP );
    memset( DP , INF , sizeof( DP ) );
    DP[0] = 0;

    for(int i = 1; i <= N; ++i)
    {
        scanf( "%d %d" , &E , &C );

        for(int j = CP; j >= 0; --j)
            if(j - E >= 0)
            {
                if(DP[j] > DP[j - E] + C)
                    DP[j] = DP[j - E] + C;
            }
            else
                DP[ j ] = min(DP[ j ] , C);
    }

    fclose(stdin);
    printf( "%d" , DP[ CP ]);
    fclose(stdout);

    return 0;
}