Pagini recente » Cod sursa (job #2155161) | Arhiva de probleme | Cod sursa (job #2137066) | Cod sursa (job #652023) | Cod sursa (job #1715032)
#include <fstream>
using namespace std;
int n,g,dp[3005],cursor;
char buff[255];
void read(int &nr) {
nr=0;
while(buff[cursor]<'0'||buff[cursor]>'9')
cursor++;
while(buff[cursor]>='0'&&buff[cursor]<='9')
nr=nr*10+(buff[cursor]-'0'),cursor++;
}
int main()
{
ios_base::sync_with_stdio(false);
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
fin.getline(buff,255);
read(n),read(g);
int w,p;
for(int i=1;i<=n;i++) {
cursor=0;
fin.getline(buff,255);
read(w),read(p);
for(int j=g;j>w;j--)
if(dp[j-w]+p>dp[j]&&dp[j-w])
dp[j]=dp[j-w]+p;
if(p>dp[w])
dp[w]=p;
}
int maxim=0;
for(int i=1;i<=g;i++)
if(dp[i]>maxim)
maxim=dp[i];
fout<<maxim<<'\n';
return 0;
}