Pagini recente » Cod sursa (job #2297984) | Cod sursa (job #942379)
Cod sursa(job #942379)
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
struct thing{
int w,p;
};
vector<int> d1,d2;
vector<thing> v;
int main(){
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,g;
thing temp;
temp.w=temp.p=0;
scanf("%d%d",&n,&g);
d1.push_back(0);
d2.push_back(0);
v.push_back(temp);
for(int i=1;i<=n;i++){
scanf("%d%d",&temp.w,&temp.p);
v.push_back(temp);
}
for(int i=1;i<=g;i++){
d1.push_back(0);
d2.push_back(0);
}
for(int i=1;i<=n;i++){
for(int j=1;j<=g;j++){
if(j<v[i].w){
d2[j]=d1[j];
continue;
}
d2[j]=d1[j]>d1[j-v[i].w]+v[i].p?d1[j]:d1[j-v[i].w]+v[i].p;
}
copy(d2.begin(),d2.end(),d1.begin());
}
printf("%d\n",d2[g]);
return 0;
}