Cod sursa(job #3037738)

Utilizator Alexander444Alex Chiriac Alexander444 Data 26 martie 2023 12:50:00
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream f("rucsac.in");
ofstream g("rucsac.out");

int main()
{
	short n,gr,i,j,p,w;
	f>>n>>gr;
	vector<pair<short,short>> v;
	vector<unsigned int>* last=new vector<unsigned int>;
	vector<unsigned int>* current=new vector<unsigned int>;
	v.resize(n);
	last->assign(gr+1,0);
	current->assign(gr+1,0);
	for(i=0;i<n;i++)
	{
		f>>w>>p;
		v.at(i)=pair<short,short>(w,p);
	}
	for(i=0;i<n;i++)
	{
		current->at(0)=0;
		w=v.at(i).first;
		p=v.at(i).second;
		for(j=1;j<=gr;j++)
			if(j>=w)
				current->at(j)=max(last->at(j-w)+p,last->at(j));
			else current->at(j)=last->at(j);
		swap(last,current);
	}
	g<<last->at(gr)<<'\n';
	delete current,last;
	f.close();
	g.close();
	return 0;
}