Cod sursa(job #997515)

Utilizator kitzTimofte Bogdan kitz Data 14 septembrie 2013 13:07:53
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>
std::ifstream f("rucsac.in");
std::ofstream g("rucsac.out");
int N, G;
int P[5005], W[5005], D[2][10005];
int main()
{
	f>>N>>G;
	for(int i = 1; i <= N; i++)
	{
		f>>W[i]>>P[i];
	}
	int l=0;
    for(int i = 1; i <= N; ++i, l = 1 - l)
        for(int cw = 0; cw <= G; ++cw)
        {
            D[1-l][cw] = D[l][cw];
            if(W[i] <= cw)
                D[1-l][cw] = std::max(D[1-l][cw], D[l][cw - W[i]] + P[i]);
        }
    g<<D[l][G]<<"\n"; g.close();
	return 0;
}