Cod sursa(job #1919688)

Utilizator aeromaniaXRadoi Iulian aeromaniaX Data 9 martie 2017 20:35:23
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <bits/stdc++.h>
using namespace std;

int n,a[10002],b[10002],gmax,gr,val;
void fix(int a[],int b[])
{

    for(int r=0;r<=gmax;r++){
        a[r]=b[r];
        if(r>=gr)
        a[r]=max(a[r],b[r-gr]+val);
    }

}
int main()
{
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    scanf("%d %d",&n,&gmax);

    for(int i=1;i<=n;i++)
    {
        scanf("%d %d",&gr,&val);

        if(i%2) fix(a,b);
        else fix(b,a);
    }
    printf("%d",max(a[gmax],b[gmax]));

    return 0;

}