Cod sursa(job #130479)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 1 februarie 2008 12:19:09
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<stdio.h>
long int ge,w,i8,cmin,i,c[5010],egi,cgi,ec;
int main()
{
    FILE *f,*g;f=fopen("energii.in","r");g=fopen("energii.out","w");
    fscanf(f,"%ld",&ge);fscanf(f,"%ld",&w);
    i8=20000000;
    cmin=i8;for(i=1;i<w;i++)c[i]=i8;c[0]=0;
    for(i=1;i<=ge;i++)
    { fscanf(f,"%ld%ld",&egi,&cgi);
      if(egi>=w)
       {if(cgi<cmin)
	cmin=cgi;}
      else
      { for(ec=w-egi;ec<w;ec++)
	 if(cmin>c[ec]+cgi)cmin=c[ec]+cgi;
	for(ec=w-1;ec>=egi;ec--)
	 if(c[ec]>c[ec-egi]+cgi)c[ec]=c[ec-egi]+cgi;
      }
    }
    if(cmin==i8)fprintf(g,"-1\n");
    else fprintf(g,"%ld",cmin);
    fcloseall();
    return 0;
}