Cod sursa(job #257953)

Utilizator ConsstantinTabacu Raul Consstantin Data 14 februarie 2009 14:01:36
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>
#include<string.h>
int i,j,k,l,m,n,a,c,G;
unsigned long long  int v[1000000],z;
int main(){
FILE *f=fopen("energii.in","r");
fscanf(f,"%d %d",&n,&G);
for(i=1;i<=G+1;i++)
        v[i]=1000000000;

for(i=1;i<=n;i++)

        {fscanf(f,"%d%d",&a,&c);
        for(j=G;j>=1;j--)
                {m=j+a;
                if(m>G)m=G;

                if(v[m] > (v[j]+c))
                v[m]=v[j]+c;

                if(v[m] > v[m+1])v[m]=v[m+1];
               }

        for(j=1;j<=a;j++)
                if(v[j]>c)
                v[j]=c;
       }
fclose(f);
FILE *g=fopen("energii.out","w");
if(v[G]==1000000000)
fprintf(g,"%d",-1);
else
fprintf(g,"%ld",v[G]);
fclose(g);
return 0;
}