Cod sursa(job #1075274)

Utilizator classiusCobuz Andrei classius Data 8 ianuarie 2014 19:57:54
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
#include <vector>
#define min(a,b) ((a)<(b)?(a):(b))

using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");

int n,ga,i,j,s;
int wg[5100],pg[5100],dp[12000];

int main()
{

    f>>n>>ga;

    for(i=1;i<=n;i++) f>>wg[i]>>pg[i];
    dp[0]=1;

    for(i=1;i<=n;i++)
    {
        for(j=5100;j>=0;j--)
        {
            if(dp[j])
            {
                if(!dp[j+wg[i]]||dp[j+wg[i]]>dp[j]+pg[i]) dp[j+wg[i]]=dp[j]+pg[i];
            }
        }
    }
    s=2*5100;

    for(i=ga;i<2*5100;i++) if(dp[i]) s=min(s,dp[i]);

    if(s==2*5100) s=0;
    g<<s-1;

    return 0;
}