Cod sursa(job #1368362)

Utilizator ZeBuGgErCasapu Andreas ZeBuGgEr Data 2 martie 2015 16:33:48
Problema Problema rucsacului Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include<stdio.h>

long long int pack[2][6000],weight[6000],val[6000],pos=1;

int main()
{
    FILE *fin,*fout;
    fin=fopen("rucsac.in","r");
    fout=fopen("rucsac.out","w");

    int n,g;
    fscanf(fin,"%d %d",&g,&n);
    for(int i=1;i<=n;i++)
    {
        fscanf(fin,"%lld %lld",&weight[i],&val[i]);
    }
    for(int i=weight[pos];i<=n;i++)
    {
        pack[0][i]=val[pos];
    }
    pos++;
    for(int i=2;i<=g;i++)
    {
        for(int i=weight[pos];i<=n;i++)
        {
            if(pack[0][i]>pack[0][i-weight[pos]]+val[pos])
            {
                pack[1][i]=pack[0][i];
            }
            else
            {
                pack[1][i]=pack[0][i-weight[pos]]+val[pos];
            }
        }
        for(int i=1;i<=n;i++)
        {
            //fprintf(fout,"%d ",pack[1][i]);
            pack[0][i]=pack[1][i];
        }
        //fprintf(fout,"\n");
        pos++;
    }
    fprintf(fout,"%lld",pack[1][n]);
}