Cod sursa(job #1416109)

Utilizator avramraresAvram Rares Stefan avramrares Data 7 aprilie 2015 13:16:16
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <algorithm>

using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int j,i,gmax,gg,n,p,Max;
long long a[10003];
int main()
{
    f>>n>>gmax>>gg>>p;
    if(gg<=gmax) a[gg]=p;

    for(j=1; j<n; ++j)
    {
        f>>gg>>p;

        for(i=gmax-gg; i>=0; --i)
            if(a[i]>0)
            {
                if(a[i+gg]==0) a[i+gg]=a[i]+p;
                else if(a[i+gg]<a[i]+p) a[i+gg]=a[i]+p;
            }

        if( a[gg]==0) a[gg]=p;
        else if(a[gg]<p) a[gg]=p;

    }
    Max=0;
    for(i=0; i<=gmax; ++i) if(Max<a[i]) Max=a[i];
    g<<Max<<'\n';



    return 0;
}