Cod sursa(job #1111627)

Utilizator BLz0rDospra Cristian BLz0r Data 18 februarie 2014 23:46:25
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <cstdio>
#include <algorithm>
using namespace std;

FILE *f=fopen ("rucsac.in","r");
FILE *g=fopen ("rucsac.out","w");

struct obiecte{
	int w,p;
}v[5005];

int D[2][10005];

int main(){
	int n,s;
	
	fscanf (f,"%d%d",&n,&s);
	
	for (int i=1;i<=n;++i) fscanf (f,"%d%d",&v[i].w,&v[i].p);
	
	int l=0;
	for (int i=1;i<=n;++i,l=1-l){
		for (int j=0;j<=s;++j){
			D[1-l][j]=D[l][j];
			if (v[i].w<=j){
				D[1-l][j]=max(D[1-l][j],D[l][j-v[i].w]+v[i].p);
			}
		}
	}
	
	fprintf (g,"%d",D[l][s]);
	return 0;
}