Cod sursa(job #2434292)

Utilizator AlexBolfaAlex Bolfa AlexBolfa Data 1 iulie 2019 14:22:40
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#define MAX 10005
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

int n,g,W[MAX];

int main(){
    int i,j,x,y;
    fin>>n>>g;
    for(i=0;i<n;++i){
        fin>>x>>y;//x-greutate, y-cost
        for(j=g;j>0;--j)
            if(W[j] && j+x<=g){
                if(!W[j+x])
                    W[j+x]=W[j]+y;
                else
                    W[j+x]=max(W[j+x],W[j]+y);
            }
        if(x>g)
            continue;
        if(!W[x])
            W[x]=W[0]+y;
        else
            W[x]=max(W[x],W[0]+y);
    }
    int maxx;
    for(i=0;i<=g;++i){
        maxx=max(maxx,W[i]);
    }
    fout<<maxx;
    return 0;
}