Cod sursa(job #877972)

Utilizator mazaandreiAndrei Mazareanu mazaandrei Data 13 februarie 2013 16:50:22
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<fstream>
#define maxn 5001
#define maxp 10001
using namespace std;
int n,p,sol;
int g[maxn], v[maxn];
int best[maxp];
int main() {
    ifstream in("rucsac.in"); ofstream out("rucsac.out");
    in>>n>>p;
    for (int i=1; i<=n; ++i)
        in>>g[i]>>v[i];
    for( int i=1; i<=n; ++i)
        for( int j=p-g[i]; j>=0; --j) {
            if( best[j+g[i]]<best[j]+v[i]){
                best[j+g[i]]=best[j]+v[i];
                if(best[j+g[i]]>sol)
                    sol=best[j+g[i]];
            }
    }
    out<<sol<<'\n';
    return 0;
}