Cod sursa(job #1011807)

Utilizator savulescustefanSavulescu Stefan savulescustefan Data 17 octombrie 2013 15:40:46
Problema Problema rucsacului Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>

using namespace std;
ifstream f ("rucsac.in");
ofstream g ("rucsac.out");
int a[5004],b[5004],c[10004],Max,Max1,gr,n,i,j;
int main()
{
    f>>n>>gr;
    for (i=1;i<=n;i++)
        f>>a[i]>>b[i];
    Max=0;
    for (i=1;i<=n;i++)
        c[i]=-1;
    c[0]=0;
    for (i=1;i<=n;i++)
    {
        for(j=Max;j>=0;j--)
        if (c[j]>-1 && c[j+a[i]]<c[j]+b[i])
        c[j+a[i]]=c[j]+b[i];
    Max=Max+a[i];
    }
    Max1=c[gr];
    for (i=gr-1;i>=1;i--)
        if (c[i]>Max1)
        Max1=c[i];
    g<<Max1;
    return 0;
}