Pagini recente » Cod sursa (job #2682846) | Cod sursa (job #2089020) | Cod sursa (job #238054) | Cod sursa (job #1045628) | Cod sursa (job #2930751)
#include<fstream>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<climits>
#include<iomanip>
#include<cstring>
#include<bitset>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
//ifstream f("in.in");
//ofstream g("out.out");
int n,G,x,p,indMax = 0,sol=0;
int d[10005];
int main(){
f>>n>>G;
for(int i=1;i<=G;i++){
d[i] = -1;
}
d[0] = 0;
for(int i=1;i<=n;i++){
f>>x>>p;
for(int j=indMax;j>=0;j--){
if(d[j]!=-1){
if(x+j<=G){
if(d[x+j] < d[j] + p){
d[x+j] = d[j] + p;
indMax = max(indMax,x+j);
}
}
}
}
/*cout<<i<<":"<<'\n';
cout<<x<<" "<<p<<'\n'<<'\n';
for(int i=1;i<=G;i++){
cout<<i<<": "<<d[i]<<'\n';
}
cout<<'\n';
cout<<"--------------------"<<'\n'<<'\n';*/
}
sol = 0;
for(int i=1;i<=G;i++){
sol = max(sol,d[i]);
}
g<<sol;
f.close();
g.close();
return 0;
}