Cod sursa(job #633522)

Utilizator titusuTitus C titusu Data 13 noiembrie 2011 22:20:20
Problema Problema rucsacului Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <iomanip>
#include <fstream>
#define INF 1000000000
using namespace std;

int n,G,w[5005],p[5005], A[10001], B[10001];

void citire(){
	ifstream fin("rucsac.in");
	fin>>n>>G;
	for(int i=1;i<=n;++i)
		fin >> w[i]>>p[i];
	fin.close();
}

void afisare(){
	ofstream fout("rucsac.out");
	fout << A[G];
	fout.close();
}

void rezolvare(){
	int p1, p2;
	for(int i=1;i<=n;++i){
		for(int g=1;g<=G;++g){
			p1 = A[g];
			p2 = 0;
			if( g>=w[i])
				p2 = A[g-w[i]]+p[i];
			B[g] = p1>p2?p1:p2;
		}
		for(int j=1;j<=G;++j)	
			A[j] = B[j];
	}
}

int main(){
	citire();
	rezolvare();
	afisare();
	return 0;
}