Cod sursa(job #820611)

Utilizator thebest001Neagu Rares Florian thebest001 Data 21 noiembrie 2012 08:07:45
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <stdio.h>

int prf[10001];
int n,k;
void step(int g,int p){
	for (int j=k-g;j>=0;j--){
		if (prf[j]!=-1 && p+prf[j]>prf[j+g])
			prf[j+g]=prf[j]+p;
	}
}

void write(){
	int max=-1;
	for (int i=k;i>=0;i--)
		if (prf[i]!=-1){
			if (max<prf[i])
				max=prf[i];

		}
	printf("%d",max);
}

int main(){
	freopen("rucsac.in","r",stdin);
	freopen("rucsac.out","w",stdout);
	
	scanf("%d %d",&n,&k);
	for (int i=1;i<=k;i++)
		prf[i]=-1;
	prf[0]=0;
	for (int i=1;i<=n;i++){
		int g,p;
		scanf("%d %d",&g,&p);
		step(g,p);
	}
	write();
	return 0;
}