Cod sursa(job #2414628)
| Utilizator | Data | 24 aprilie 2019 20:33:05 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.65 kb |
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int v[10001];
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,gmax,g,p,i,j,max1,nr;
cin>>n>>gmax;
cin>>g>>p;
v[g]=p;
for(i=2;i<=n;i++){
cin>>g>>p;
for(j=gmax-g;j>=1;j--)
if(v[j]!=0 && j+g<=gmax){
nr=p+v[j];
if(nr>v[g+j])
v[g+j]=nr;
}
if(p>v[g])
v[g]=p;
}
max1=0;
for(i=1;i<=gmax;i++)
if(v[i]>max1)
max1=v[i];
cout<<max1;
return 0;
}
