Cod sursa(job #2338045)

Utilizator isa_tudor_andreiAndrei Tudor isa_tudor_andrei Data 6 februarie 2019 22:10:18
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#include <algorithm>
#define GMAX 1005
#define NMAX 5005

using namespace std;

int dp[GMAX][NMAX];
int e[GMAX];
int c[GMAX];

int main() {
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    int i,j,n,W;
    scanf("%d%d",&n,&W);
    for( i = 1; i <= n; i ++ )
      scanf("%d%d",&e[i],&c[i]);
    for( i = 0; i <= n; i ++ )
      for( j = 0; j <= W; j ++ )
        dp[i][j] = NMAX * GMAX * 100;
    for( i = 1; i <= n; i ++ ) {
      for( j = 1; j <= W; j ++ ) {
        if( j - e[i] <= 0 )
          dp[i][j] = min(dp[i-1][j],c[i]);
        else
          dp[i][j] = min( dp[i-1][j], dp[i][j-e[i]] + c[i] );
      }
    }
    if( dp[n][W] == NMAX * GMAX * 100 )
      printf("-1");
    else
      printf("%d",dp[n][W]);
    return 0;
}