Cod sursa(job #2411614)
| Utilizator | Data | 20 aprilie 2019 22:03:06 | |
|---|---|---|---|
| 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[j+g])
v[j+g]=nr;
}
if(v[g]<p)
v[g]=p;
}
max1=0;
for(i=1;i<=gmax;i++)
if(v[i]>max1)
max1=v[i];
cout<<max1;
return 0;
}
