Cod sursa(job #874924)

Utilizator priestnoobFMI - Dan Nema priestnoob Data 9 februarie 2013 14:15:30
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<vector>
#include<stdio.h>
using namespace std;
int n,rez,re[5000][3], g,l;
vector<int> p,w;
//vector<vector<int> > r;

void citire()
{
    scanf("%d%d",&n,&g);
    p.resize(n+1);
    w.resize(n+1);
    for(int i=1;i<=n;i++)
    scanf("%d%d",&w[i],&p[i]);
}

void pd()
{
  //  r.resize(n+1,vector<int> (3));
    for(int i=1;i<=n;++i,l=1-l)
    for(int cw=0;cw<=g;++cw)
    {
        re[1-l][cw] = re[l][cw];
             if(w[i] <= cw)
                re[1-l][cw] = max(re[1-l][cw], re[l][cw - w[i]] + p[i]);
    }
    rez=re[n][l];
    printf("%d", re[n][l]);
}

int main()
{
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    citire();
    pd();
}