Cod sursa(job #40528)
Utilizator | Data | 27 martie 2007 14:46:25 | |
---|---|---|---|
Problema | Energii | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <stdio.h>
int v[5005];
int main()
{
int w,g,c,i,e,j;
v[0]=1;
FILE *in=fopen("energii.in","r");
fscanf(in,"%d%d",&g,&w);
for (i=0; i<g; i++)
{
fscanf(in,"%d%d",&e,&c);
for (j=w-e; j>=0; j--)
if (v[j] && (v[j+e]>v[j]+c || v[j+e]==0))
v[j+e]=v[j]+c;
}
fclose(in);
FILE *out=fopen("energii.out","w");
if (v[w]==0)
fprintf(out,"-1\n");
else
fprintf(out,"%d\n",v[w]-1);
fclose(out);
return 0;
}