Cod sursa(job #2664215)

Utilizator Vaida_Radu_AndreiVaida Radu Andrei Vaida_Radu_Andrei Data 28 octombrie 2020 10:18:33
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <cstdio>
#define nMax 5120
#define wMax 10240

using namespace std;

struct elem {
    int weight,value;
}v[nMax];

int n,w,sol[wMax];

void read() {
    int i;
    scanf("%d%d",&n,&w);
    for(i=0;i<n;++i)  {
        scanf("%d%d",&v[i].weight,&v[i].value);
    }
}

void solve() {
    int i,j;
    for(i=0;i<n;++i) {
        for(j=w;j>=0;--j) {
            if(i) {
                if(j>=v[i].weight&&sol[j-v[i].weight]+v[i].value>sol[j]) {
                    sol[j]=sol[j-v[i].weight]+v[i].value;
                }
            }
            else {
                if(j>=v[i].weight) {
                    sol[j]=v[i].value;
                }
            }
        }
    }
}

int main() {
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    read();
    solve();
    printf("%d",sol[w]);
    return 0;
}