Cod sursa(job #904264)

Utilizator PregatireONIAnamaria Cotirlea PregatireONI Data 3 martie 2013 23:41:22
Problema Problema rucsacului Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

FILE *f,*s;

int m,n,i,j;

struct obiect
{
	int x;
	int y;
};

obiect v1[50005];

int v2[2][10005];

int main()
{
	f=fopen("rucsac.in","r");
	s=fopen("rucsac.out","w");
	
	fscanf(f,"%d %d",&n,&m);
	
	for(i=1;i<=n;i++)
		fscanf(f,"%d %d",&v1[i].x,&v1[i].y);
	
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=m;j++)
		{
			v2[2][j]=v2[1][j];
			
			if(v1[i].x <= j)
                v2[2][j]=max(v2[2][j],v2[1][j-v1[i].x]+v1[i].y);
		}	

		for(j=1;j<=m;j++) v2[1][j]=v2[2][j];	
	}
	
	fprintf(s,"%d",v2[2][m]);
	
	fclose(s);
	
	return 0;
}