Cod sursa(job #523557)

Utilizator S7012MYPetru Trimbitas S7012MY Data 18 ianuarie 2011 16:03:00
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <iostream>
#include <fstream>
#define DG 1005
#define DW 5005
using namespace std;

int dp[DG][DW],cant[DG],cost[DW],g,w,tot;

int main()
{
    ifstream f("energii.in");
    ofstream out("energii.out");
    f>>g>>w;
    int i,j;
    for(i=1; i<=g; ++i) f>>cant[i]>>cost[i],tot+=cant[i];
    if(tot<w) out<<"-1";
    for(i=1;i<=w;i++) dp[0][i]=9999999;
    for(i=1; i<=g; ++i) for(j=1; j<=w; ++j)
            if(j<cant[i]) dp[i][j]=min(dp[i-1][j],cost[i]);
            else dp[i][j]=min(dp[i-1][j],dp[i-1][j-cant[i]]+cost[i]);
    out<<dp[g][w];
    return 0;
}