Cod sursa(job #994371)

Utilizator alexandru.huleaAlexandru Hulea alexandru.hulea Data 5 septembrie 2013 13:45:54
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<iostream>
#include<fstream>

using namespace std;

inline int max(int a, int b)
{
       return (a > b ? a : b); 
}

int main()
{
    ifstream in("rucsac.in");
    ofstream out("rucsac.out");
    int N,G;
    int P[10001];
    int W[10001];
    int D[2][10001];
    int i,j;
    
    in>>N>>G;
    for (i = 1 ; i <= N ; i++)
        {
        in>>W[i];
        in>>P[i];
        }
    in.close();
    
    for (i = 1; i <= N; i++)
    {
        for ( j = 1 ; j <= G;j++)
        if( j >= W[i])
             D[1][j] = max (D[0][j], D[0][j - W[i]] + P[i]);
        else 
             D[1][j] = D[0][j];
               
    
        for (j= 0 ; j <= G  ; j++)
        {
            D[0][j] = D[1][j];
        }
    }
    out<<D[1][G];
    out.close();
    return 0;
}