Cod sursa(job #2314414)

Utilizator q1e123Solca Robert-Nicolae q1e123 Data 8 ianuarie 2019 14:35:27
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <cstdio>
#include <cstring>
#include <iostream>
struct Item{
    int weight,price;
};

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

    int n,g;
    scanf("%d %d",&n,&g);

    Item items[n+1];

    for(int i=1;i<=n;++i){
        scanf("%d %d",&items[i].weight,&items[i].price);
    }

    int best[g+1];
    memset(best,-1, sizeof(best));
    for(int i=1;i<=n;++i){
        for(int j= g- items[i].weight;j>=0;--j){
            if(best[j+items[i].weight]<best[j]+items[i].price){
                 best[j+items[i].weight]=best[j] +items[i].price;
            }
        }
    }
    printf("%d",best[g]);
    return 0;
}