Pagini recente » Cod sursa (job #1462821) | Cod sursa (job #2406674) | Cod sursa (job #888444) | Cod sursa (job #2406547) | Cod sursa (job #624890)
Cod sursa(job #624890)
#include <stdio.h>
#include <stdlib.h>
int max(int i, int j)
{
return i < j? j :i;
}
int main()
{
FILE * f = fopen("rucsac.in","r");
int n,g;
fscanf(f, "%i%i", &n,&g);
int v[50][2];
int i;
for (i = 0; i < n; i++)
{
fscanf(f,"%i%i",v[i],v[i]+1);
}
fclose(f);
int j,m[2][103] = {0};
int k = 0;
for (i = 0; i < n; i++)
{
if(k == 0)
k = 1;
else
k = 0;
for (j = 1; j <= g; j++)
{
m[k][j] = max(m[k-(k == 0? -1 : 1)][j],j - v[i][0] < 0?-1:(m[k - (k==0?-1:1)][j - v[i][0]] + v[i][1]));
}
}
f = fopen("rucsac.out","w");
fprintf(f,"%i",m[k][g]);
fclose(f);
return 0;
}