Cod sursa(job #2137146)

Utilizator mariastStoichitescu Maria mariast Data 20 februarie 2018 17:16:53
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<fstream>
using namespace std;
ifstream f ("rucsac.in");
ofstream g ("rucsac.out");
int n,G,d[2][10010];
int gr[5010],p[5010];

int main()
{
    f>>n>>G;
    for(int i=1;i<=n;++i){
        f>>gr[i]>>p[i];
    }
    for(int i=1;i<=n;++i){
        if(i%2)
            for(int j=0;j<=G;++j){
                d[1][j]=d[0][j];
                if(gr[i]<=j) d[1][j]=max(d[1][j],d[0][j-gr[i]]+p[i]);
            }
        else
            for(int j=0;j<=G;++j){
                d[0][j]=d[1][j];
                if(gr[i]<=j) d[0][j]=max(d[0][j],d[1][j-gr[i]]+p[i]);
            }
    }
    g<<max(d[0][G],d[1][G]);
}