Cod sursa(job #639274)

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

bool comp (el x, el y)
{
   return (x.a<y.a);
}
int main()
{
    f>>n>>T;

for(i=1;i<=n;i++)
f>>v[i].a>>v[i].b;
sort(v+1,v+n+1,comp);




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

        x=v[i].a;y=v[i].b;
        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;
}