Cod sursa(job #1151192)

Utilizator serbanSlincu Serban serban Data 23 martie 2014 22:03:03
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <cstdio>

using namespace std;

int n,G,c[1005],e[1005],x[1005][10005],maxx;

int main()
{
    int i,j,aux;
    FILE *f=fopen("energii.in","r");
    FILE *g=fopen("energii.out","w");
    fscanf(f,"%d%d",&n,&G);
    for(i=1;i<=n;i++)
    {
        fscanf(f,"%d%d",&e[i],&c[i]);
        maxx+=e[i];
        for(j=1;j<=e[i];j++)
        {
            if(x[i-1][j])
                x[i][j]=min(x[i-1][j],c[i]);
            else x[i][j]=c[i];
        }
        for(j=e[i]+1;j<=maxx;j++)
        {
            if(x[i-1][j])
                x[i][j]=min(c[i]+x[i-1][j-e[i]],x[i-1][j]);
            else x[i][j]=c[i]+x[i-1][j-e[i]];
        }
    }
    if(x[n][G])
        fprintf(g,"%d\n",x[n][G]);
    else fprintf(g,"-1\n");
    return 0;
}