Cod sursa(job #1809339)

Utilizator mihnea_ocianOcian Mihnea mihnea_ocian Data 18 noiembrie 2016 20:47:02
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <cstdio>
using namespace std;
FILE*fin,*fout;
int g,w,v[2][10001],s,cost,ei,ci,i,j,v2,cmin=10000000;
int main()
{
    fin=fopen("energii.in","r");
    fout=fopen("energii.out","w");
    fscanf(fin,"%d",&g);
    fscanf(fin,"%d",&w);
    for(j=1;j<w+1;j++)
        v[0][j]=1000000;
    for(i=1;i<=g;i++)
    {
        fscanf(fin,"%d%d",&ei,&ci);
        for(j=1;j<=w;j++)
        {
            if(j-ei<=0)
            {
                if(v[(i-1)%2][j]>ci)
                    v[i%2][j]=ci;
            }
            else
            {
                 if(v[(i-1)%2][j]>ci+v[(i-1)%2][j-ei] )
                    v[i%2][j]=ci+v[(i-1)%2][j-ei];
            }
        }
    }
     if(v[g%2][w]==0)
        fprintf(fout,"-1");
    else
    fprintf(fout,"%d",v[g%2][w]);

    return 0;
}