Pagini recente » Cod sursa (job #296406) | Cod sursa (job #877339) | Cod sursa (job #1632406) | Cod sursa (job #2368035) | Cod sursa (job #1990882)
#include <fstream>
using namespace std;
const int N = 5005, G = 10005;
int p[N], g[N], pd[G];
void citire(int &n, int &s){
ifstream in("rucsac.in");
in>>n>>s;
for(int i=1;i<=n;i++)
in>>g[i]>>p[i];
in.close();
}
void rezolva(int n, int s, int &Max){
for(int i=1;i<=n;i++)
for(int j=s-g[i];j>=0;j--){
pd[ j+g[i] ] = max(pd[j] + p[i] , pd[ j+g[i] ]);
Max = max(Max , pd[ j+g[i] ]);
}
}
void afiseaza(int Max){
ofstream out("rucsac.out");
out<<Max<<"\n";
out.close();
}
int main()
{
int n, s, Max=-1;
citire(n,s);
rezolva(n,s,Max);
afiseaza(Max);
return 0;
}