Cod sursa(job #1010503)

Utilizator ArchazeyBaltatu Andrei-Mircea Archazey Data 15 octombrie 2013 00:32:30
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<iostream>
#include<fstream>
#include<cstdio>
#include<iostream>
#include<fstream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<ctime>
using namespace std;

int n,gs,s[5005],g[5005],m1[10005],m2[10005],maxim;

inline void Citire()
{
    int i;
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    scanf("%d%d",&n,&gs);
    for (i=1;i<=n;i++)
        scanf("%d%d",&g[i],&s[i]);
}

inline void FormeazaMat()
{
     int x=1,i,j;
     for (j=1;j<=n;j++)
    {
        for (i=1;i<=gs;i++)
            {
                if (g[j]<=i)
                    m2[i]=max(m1[i-g[j]]+s[j],m1[i]);
                else m2[i]=m2[i-1];
            }
        for (i=0;i<=gs;i++)
            m1[i]=m2[i];

    }
}

int main()
{
    Citire();
    FormeazaMat();
    printf("%d\n",m2[gs]);
    return 0;
}