Cod sursa(job #2315194)

Utilizator daniela12Sandu Daniela Teodora daniela12 Data 9 ianuarie 2019 15:56:15
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct obiect
{
	int c, g;
};
int n, G;
vector <obiect> o;
vector <int> d; 
vector <int> linie; //linie precedenta in dinamica
void citire()
{
	f >> n >> G;
	o.resize(n + 3);
	d.resize(G + 3);
	linie.resize(G + 3);
	int i;
	for (i = 1; i <= n; i++)
	{
		f >> o[i].g >> o[i].c;
	}
	f.close();
}
int main()
{
	citire();
	int i, j;
	for (i =0 ; i <= n; i++)
	{
		for (j = 0; j <= G; j++)
		{
			if (j >=o[i].g)
				d[j] = max(linie[j], linie[j - o[i].g] + o[i].c);
			else
				d[j] =linie[j];
			//g << d[j] << " ";
		}
		linie = d;
		//g << "\n";
	}
	g << d[G];
	g.close();
	return 0;
}