Cod sursa(job #1657714)

Utilizator sebi110Ciobanu Sebastian sebi110 Data 20 martie 2016 18:41:15
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>

using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int a[2][10000];
int main()
{
    int n,m,i,j,k,q,g,x,y,maxim;
    fin>>n>>m;
    i=1;
    for(k=1;k<=n;k++)
    {
        j=i;i=1-i;
        fin>>x>>y;
        for(q=0;q<=m;q++)
        {
            if(q-x<0)
                a[i][q]=a[j][q];
            else
            {
                g=q-x;
                if(a[j][g]+y>a[j][q])
                {
                    if(a[j][g]!=0)
                        a[i][q]=y+a[j][g];
                    else if(g==0)
                            a[i][q]=y;
                }
                else
                {
                    a[i][q]=a[j][q];
                }
            }
        }
    }
    maxim=0;
    for(k=0;k<=m;k++)
        maxim=max(maxim,a[i][k]);
    fout<<maxim<<'\n';
    return 0;
}