Cod sursa(job #820603)

Utilizator Theorytheo .c Theory Data 21 noiembrie 2012 07:53:47
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<fstream>
#define inf 100000
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

struct produs{int p, g;};
produs T[5008];
int N, G;
int sum[100008];
void read()
{
    fin >>N>>G;
    for(int i = 1; i <= N; i++)
        fin >>T[i].g >> T[i].p;
}

void solve()
{
    for(int i = 0 ;i <=G ; i++)
        sum[i] = -inf;
    sum[0] = 0;

    for(int i = 1; i <= N; i++)
    {
        for(int j = G - T[i].g; j >= 0 ; --j)
        {
            if(sum[j] != inf && sum[j + T[i].g] < sum[j] + T[i].p)
            sum[j + T[i].g] = sum[j] + T[i].p;
        }
    }



}
int main()
{
    read();
    solve();
    int p_max = 0;
    for(int i = 0 ; i <= G; i++)
        if(p_max < sum[i])
            p_max = sum[i];
    fout << p_max <<'\n' ;

    fin.close();
    return 0;
}