Cod sursa(job #1814803)

Utilizator Luzar_rokyIlies Dragos Ionut Luzar_roky Data 24 noiembrie 2016 16:15:44
Problema Problema rucsacului Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
using namespace std;
int i,n,gr,v[5001],g[5001],s1[10001],s2[10001],j;
ifstream fi("rucsac.in");
ofstream fo("rucsac.out");
int main()
{
  fi>>n>>gr;
  for(i=1; i<=n; i++)
  {
    fi>>g[i]>>v[i];
  }
  for(i=1; i<=n; i++)
  {
      for(j=1; j<=gr; j++)
      {
        if(g[i]>j)
        s2[j]=max(s1[j],s2[i-1]);
        if(g[i]==j)
        s2[j]=max(v[i],s1[j]);
        if(g[i]<j)
        {
        s2[j]=max(s1[j],v[i]+s1[j-g[i]]);
        }
      }
      for(j=1; j<=gr; j++)
      {
        s1[j]=max(s2[j],s1[j]);
      }
  }
  fo<<s1[gr]<<'\n';
  return 0;
}