Cod sursa(job #767693)

Utilizator Mihai22eMihai Ionut Enache Mihai22e Data 14 iulie 2012 13:54:19
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<stdio.h>

#define WMAX 10002

int a[ WMAX ], n, W, max, res;

void solve()
{
	int i, j, w, p;
	
	FILE *f = fopen("rucsac.in", "r");
	fscanf(f, "%d %d", &n, &W);
	
	for(i = 1; i <= n; i++)
	{
		fscanf(f, "%d %d", &w, &p);
			for(j = max; j >= 0; j--)
				if(j + w <= W)
					if(a[j] + p > a[w + j] || !a[w + j])
					{
						a[w + j] = a[j] + p;
						if(a[w + j] > res)
							res = a[w + j];
						if(w + j > max)
							max = w + j;
					}
		}
	
}

void write()
{
	FILE *g = fopen("rucsac.out", "w");
	fprintf(g, "%d\n", res);
	fclose(g);
}

int main()
{
	solve();
	write();
	return 0;
}