Cod sursa(job #639271)

Utilizator NustiunimicVacagrasa virginica Nustiunimic Data 22 noiembrie 2011 22:06:06
Problema Problema rucsacului Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
long long gr[1000006],gr2[1000006],gr3[1000006],a[5005],b[5005];
long long s,n,i,x,T,y,j,m,mx,mx2;
int main()
{
    f>>n>>T;

for(i=1;i<=n;i++)
f>>a[i]>>b[i];


for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
if (a[i]>a[j]) {swap(a[i],a[j]);swap(b[i],b[j]);}

    for(i=1; i<=n; i++)
    {

        x=a[i];y=b[i];
        for(j=1; j<=T; j++)
        {
            if (gr[j]>0) gr2[j+x]=max(gr[j+x],gr[j]+y);
            if (j+x>T) break;

        }

   gr2[x]=max(gr[x],y);
   for(j=1;j<=T;j++) gr[j]=gr2[j];
   }


for(i=1;i<=T;i++)
m=max(gr[i],m);
g<<m;


    f.close();
    g.close();
    return 0;
}