Cod sursa(job #1099596)

Utilizator cires.maraCires Mara Alexandra cires.mara Data 5 februarie 2014 23:09:47
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>
#include <iostream>

using namespace std;

int C[1002][5002],e[1002],c[1002],i,j,n,w,se,sc;

int main()
{
    FILE *f,*g;
    f=fopen("energii.in","r");
    g=fopen("energii.out","w");
    fscanf(f,"%d%d",&n,&w);
    for (i=1; i<=n; i++) { fscanf(f,"%d%d",&e[i],&c[i]); se=se+e[i]; sc=sc+c[i]; }

    if (se<w) fprintf(g,"-1");
    else {
    for (i=0; i<=n; i++) C[i][0]=10001;
    for (i=0; i<=w; i++) C[0][i]=10001;

    for(i=1; i<=n; i++)
      for(j=1; j<=w; j++)
         if (e[i]>=j) C[i][j]=min(C[i-1][j],c[i]);
         else C[i][j]=min(c[i]+C[i-1][j-e[i]],C[i-1][j]);

    fprintf(g,"%d\n",C[n][w]);
    }
   /* for(i=1; i<=n; i++)
    {
     for(j=1; j<=w; j++) fprintf(g,"%d ",C[i][j]);
     fprintf(g,"\n");
    }*/
    return 0;
}