Pagini recente » Cod sursa (job #1944704) | Cod sursa (job #28793) | Cod sursa (job #2168324) | Cod sursa (job #1293662) | Cod sursa (job #820603)
Cod sursa(job #820603)
#include<fstream>
#define inf 100000
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
struct produs{int p, g;};
produs T[5008];
int N, G;
int sum[100008];
void read()
{
fin >>N>>G;
for(int i = 1; i <= N; i++)
fin >>T[i].g >> T[i].p;
}
void solve()
{
for(int i = 0 ;i <=G ; i++)
sum[i] = -inf;
sum[0] = 0;
for(int i = 1; i <= N; i++)
{
for(int j = G - T[i].g; j >= 0 ; --j)
{
if(sum[j] != inf && sum[j + T[i].g] < sum[j] + T[i].p)
sum[j + T[i].g] = sum[j] + T[i].p;
}
}
}
int main()
{
read();
solve();
int p_max = 0;
for(int i = 0 ; i <= G; i++)
if(p_max < sum[i])
p_max = sum[i];
fout << p_max <<'\n' ;
fin.close();
return 0;
}