Cod sursa(job #769540)

Utilizator mariamFiciu Maria mariam Data 19 iulie 2012 19:48:25
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>

#define MAXS 10004
#define MAXN 5003


using namespace std;

ifstream f("rucsac.in");
ofstream g("rucsac.out");

int V[MAXS], T[MAXS], P[MAXS];
int A[MAXN];

int N, S, i, j, maxim;

int main() {
	f>>N>>S;
	for (i=1;i<=N;i++)
		f>>A[i]>>P[i];
	

	for (i=1;i<=N;i++) {
		for (j=S;j>=0;j--)
			if (   (V[j] !=0 || j==0)    && j+A[i] <= S) {
				if (V[j+A[i]] < V[j] + P[i])
				V[j+A[i]] = V[j] + P[i];
				T[j+A[i]] = i;
/*				if (j+A[i] == S)
					break;
*/
			}
/*
	for (j=1;j<=S;j++)
		g<<V[j]<<" ";
	g<<"\n";
*/
	}
	for (i=S;i>=0;i--)
		if (V[i] > maxim)
			maxim = V[i];
	g<<maxim;
	return 0;
}