Cod sursa(job #2082130)

Utilizator VarticeanNicolae Varticean Varticean Data 5 decembrie 2017 19:00:40
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.45 kb
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int n,g[1005],c[1005], dp[5005], W;
int main()
{
     in >> n >> W;

    for( int i=1; i<=n; i++)
          in >> g[i] >> c[i];
    for(int i=1; i<=n; i++)
     for(int j=W; j>0; j--)
     if( g[i]<=j)
     {
          dp[j] = max(dp[j], dp[j-g[i]]+c[i]);
          if( dp[j] >= W ) return out << dp[j],0;
     }

    return out << -1, 0;
}