Pagini recente » Cod sursa (job #1027109) | Cod sursa (job #526101) | Cod sursa (job #1829553) | Cod sursa (job #2036102) | Cod sursa (job #907132)
Cod sursa(job #907132)
#include<iostream>
#include <fstream>
#include<algorithm>
#include<vector>
using namespace std;
ifstream in ("rucsac.in");
ofstream out ("rucsac.out");
# define N 5001
# define M 10001
int g[N],p[N],v[M];
int n, G,maxim;
void citire()
{
in>>n>>G;
for( int i=1;i<=n;i++)
{
in>>g[i]>>p[i];
}
}
void proces()
{
for( int i=1;i<=n;i++)
{
for( int j = G - g[i]; j>0; j--)
{
if(v[j]!=0)
{
if(v[j]+p[i] > v[j+g[i]])
{
v[j+g[i]] = v[j]+p[i];
}
}
}
if(g[i]<= G && p[i]>v[g[i]])
{
v[g[i]]= p[i];
}
}
for( int i=1;i<=G;i++)
{
if(v[i]>maxim)
{
maxim=v[i];
}
}
out<<maxim;
}
int main()
{
citire();
proces();
return 0;
}