Cod sursa(job #790024)

Utilizator costyv87Vlad Costin costyv87 Data 20 septembrie 2012 01:03:13
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <cstdio>
#include <algorithm>
using namespace std;
FILE *f,*g;
struct cp{int g,p;} v[5060];
int sol[10100];
int i,j,n,gr;

int main() {
f=fopen("rucsac.in","r");
g=fopen("rucsac.out","w");

fscanf(f,"%d%d",&n,&gr);

for (i=1;i<=n;i++) 
	fscanf(f,"%d%d",&v[i].g,&v[i].p);

sol[v[1].g]=v[1].p;
for (i=2;i<=n;i++) 
	for (j=gr;j>=1;j--) {
		if (j-v[i].g>=0) 
			sol[j]=max(sol[j-v[i].g]+v[i].p,sol[j]);
		}	

int mx=-1;
for (i=1;i<=gr;i++) 
	if (mx<sol[i]) mx=sol[i];
	fprintf(g,"%d",mx);
return 0;
}