Cod sursa(job #2401269)

Utilizator renata24Vasilescu Renata Alexandra renata24 Data 9 aprilie 2019 16:11:30
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include<fstream>
#include<algorithm>
using namespace std;
const int NMAX=10000;
int d[NMAX+5];
ifstream fin("rusac.in");
ofstream fout("rusac.out");
int main()
{
    int n,G,i,g,p,last,ans,j;
    fin>>n>>G;
    for(i=1;i<=G;i++)d[i]=-1;
    last=0;
    for(i=1;i<=n;i++){
    fin>>g>>p;
    for(j=last;j>=0;j--)
    if(d[j]!=-1)
        {if(j+g>G)continue;
        if(d[j]+p>d[j+g]){
          d[j+g]=d[j] +p;
          if(j+g>last) last=j+g;
        }
            
        }
    }
    ans=0;
    for(j=G;j>=1;j--)
        if(d[j]>ans)
        ans=d[j];
    cout<<ans;
    fin.close();
    fout.close();
    return 0;
}