Cod sursa(job #1045863)

Utilizator AndreeaBaltaBalta Andreea Cristina AndreeaBalta Data 2 decembrie 2013 10:26:07
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <cstdio>

using namespace std;

const int INF = 1000000000;

struct centrala
{
    int e,c;
};
centrala centrale[1002];
int ent[15002],g,w;
void energii()
{
    int i,j;
    for(j = 0;j <= w + 10000;j++)
    {
        ent[j] = INF;
    }
    ent[0] = 0;
    for(i=0;i<g;i++)
    {
        for(j=w;j>=0;j--)
        {
            if(ent[j] != INF)
                if(ent[j]+centrale[i].c<ent[j+centrale[i].e])
                    ent[j+centrale[i].e]=ent[j]+centrale[i].c;
        }
    }
}
int main()
{
    FILE *in,*out;
    in = fopen("energii.in","r");
    out = fopen("energii.out","w");
    int max = 0,i;
    fscanf(in,"%d",&g);
    fscanf(in,"%d",&w);
    for(i=0;i<g;i++)
    {
        fscanf(in,"%d",&centrale[i].e);
        fscanf(in,"%d",&centrale[i].c);
    }
    energii();
    for(i = w,max = INF;i <= w + 10000;i++)
        if(ent[i] < max)
            max = ent[i];
    fprintf(out,"%d",max);
    return 0;
}