Cod sursa(job #1607629)

Utilizator CodrinsahCotarlan Codrin Codrinsah Data 21 februarie 2016 14:28:00
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
using namespace std;
ifstream fi ("rucsac.in");
ofstream fo ("rucsac.out");
int a[5003][10003],i,j,n,maxi,gt,g[5003],p[5003],lcur[10004],lpre[10004];
int main()
{
    fi>>n>>gt;
    for (i=1;i<=n;i++)
      fi>>g[i]>>p[i];
    for (i=1;i<=n;i++)
      {
        for (j=0;j<=gt;j++)
        {
//          a[i][j]=a[i-1][j];
//          if (g[i]<=j)
//            a[i][j]=max(a[i][j],a[i-1][j-g[i]]+p[i]);
           lcur[j]=lpre[j];
           if (g[i]<=j)
          {
            lcur[j]=max(lcur[j],lpre[j-g[i]]+p[i]);
          }
        }
          for (j=0;j<=gt;j++) {lpre[j]=lcur[j];lcur[j]=0;}
        }
    for (j=1;j<=gt;j++) maxi=max(maxi,lpre[j]);
    fo<<maxi;
    return 0;
}