Cod sursa(job #1006939)

Utilizator costel93FMI - Dumea Eduard Constantin costel93 Data 7 octombrie 2013 22:11:38
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<iostream>
#include<fstream>
#include<vector>

using namespace std;

typedef struct{
	int indice;
	int gr; 
	int val;	
}obiect;

vector<obiect> v;

int main()
{
	ifstream fin("rucsac.in");
	ofstream fout("rucsac.out");
	
	int n, G, i, a[10000], j, max_val=0;;
	
	fin>>n>>G;
	for(i=0;i<n;i++)
	{
		obiect aux;
		fin>>aux.gr>>aux.val;
		aux.indice=i+1;
		v.push_back(aux);
	}
	
	a[0]=0;
	
    for( i=1; i<=G*2; i++)
        a[i]=-1;
	
    for(i=1; i<=n; i++ )
        for( j=G-v[i-1].gr; j>=0; j--)
			if( a[j]!=-1 && ( a[j]+v[i-1].val  >  a[j+v[i-1].gr] ) )
                a[j+v[i-1].gr]=a[j]+v[i-1].val;
	
	for(i=1;i<=G*2;i++)
		if(max_val<a[i])
			max_val=a[i];
    fout<<max_val;
	
	return 0;
}