Cod sursa(job #2401244)

Utilizator HoriqHoria Pacurar Horiq Data 9 aprilie 2019 15:57:52
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>

using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
const int NMAX=100000;
int d[NMAX+5];
int main()
{
    int n,G,i,g,p,last=0,ans=0,j;
    cin>>n>>G;
    for(i=1;i<=G;i++)
       d[i]=-1;
	for(i=1;i<=n;i++)
	{
		cin>>g>>p;
		for(j=last;j>=0;j--)
		 if(d[j]!=-1)
		 {
		 	if(j+g>G)
		 	continue;
		 	if(d[j]+p>d[j+g])
		 	{
		 		d[j+g]=d[j]+p;
		 		if(j+g>last)
		 		last=j+g;
		 	}

		 }
	}
	for(j=last;j>=1;j--)
	if(d[j]>ans)
	ans=d[j];
	cout<<ans;
    return 0;
}