Nu aveti permisiuni pentru a descarca fisierul grader_test10.ok
Cod sursa(job #1768051)
Utilizator | Data | 30 septembrie 2016 08:58:29 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.61 kb |
#include <stdio.h>
#include <stdlib.h>
int w[5001],p[5001],a[10001];
int main()
{
FILE *fin,*fout;
int n,g,i,j,sol;
fin=fopen("rucsac.in","r");
fout=fopen("rucsac.out","w");
fscanf(fin,"%d%d",&n,&g);
for(i=1;i<=n;i++)
fscanf(fin,"%d%d",&w[i],&p[i]);
sol=0;
for(i=1;i<=n;i++)
for(j=g-w[i];j>=0;j--)
if(a[j+w[i]]<a[j]+p[i])
{
a[j+w[i]]=a[j]+p[i];
if(a[j+w[i]]>sol)
sol=a[j+w[i]];
}
fprintf(fout,"%d\n",sol);
fclose(fin);
fclose(fout);
return 0;
}