Cod sursa(job #658474)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 8 ianuarie 2012 21:46:41
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<fstream>
#include<stdio.h>
#define Gmax 10010
#define Nmax 5010
using namespace std;
int A[Gmax],p,u,i,j,G[Nmax],P[Nmax],n,g,sol;

int main()
{
	//freopen("rucsac.in,","r",stdin);
	freopen("rucsac.out","w",stdout);
	
	ifstream f("rucsac.in");
	//scanf("%d %d",&n,&g);
	f>>n>>g;
	for( i = 1 ; i <= n ; i++ )
	//	scanf("%d %d",&G[i],&P[i]);
	f>>G[i]>>P[i];
	
	for( i = 1 ; i <= n ; i++ )
		for( j = g ; j >= 0 ; j-- )
			if( (A[j] || j == 0) && j + G[i] <= g && A[j+G[i]] < A[j] + P[i] ) 
				A[j+G[i]] =  A[j] + P[i] ;
	
	sol = 0 ; 
	
	for( i = 1 ; i <= g ; i++ )
		if( A[i] > sol ) sol = A[i] ;
	
	printf("%d",sol);
	
	return 0 ; 
}