Cod sursa(job #820609)

Utilizator thebest001Neagu Rares Florian thebest001 Data 21 noiembrie 2012 08:06:26
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 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(){
	for (int i=k;i>=0;i--)
		if (prf[i]!=-1){
			printf("%d\n",prf[i]);
			return;
		}
}

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;
}