Cod sursa(job #1990882)

Utilizator valorosu_300Cristian Gherman valorosu_300 Data 13 iunie 2017 23:24:32
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
using namespace std;
const int N = 5005, G = 10005;
int p[N], g[N], pd[G];
void citire(int &n, int &s){
    ifstream in("rucsac.in");
    in>>n>>s;
    for(int i=1;i<=n;i++)
        in>>g[i]>>p[i];
    in.close();
}
void rezolva(int n, int s, int &Max){
    for(int i=1;i<=n;i++)
        for(int j=s-g[i];j>=0;j--){
            pd[ j+g[i] ] = max(pd[j] + p[i] , pd[ j+g[i] ]);
            Max = max(Max , pd[ j+g[i] ]);
        }
}
void afiseaza(int Max){
    ofstream out("rucsac.out");
    out<<Max<<"\n";
    out.close();
}
int main()
{
    int n, s, Max=-1;
    citire(n,s);
    rezolva(n,s,Max);
    afiseaza(Max);
    return 0;
}