Pagini recente » Cod sursa (job #1291158) | Cod sursa (job #1012589) | Cod sursa (job #2400444) | Cod sursa (job #791368) | Cod sursa (job #2331709)
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct el{
int gr,cst;
};
el v[5002];
/*int v[100002],alege[10002],n,m,sume[10002];
void scm(int s)
{
for(int i=1;i<=n;i++)
{
if(sume[v[i]]==0)
{
sume[v[i]]=1;
alege[v[i]]=i;
}
for(int j=1;j<=s;j++)
{
if(sume[j]==1&&alege[j]!=i&&sume[j+v[i]]==0)
{
sume[j+v[i]]=1;
alege[j+v[i]]=i;
}
}
}
}
void afisare(int i)
{
if(i!=0)
{
afisare(i-v[alege[i]]);
g<<v[alege[i]]<<" ";
}
}*/
int sol[10002];
int main()
{
int n,gmax,i,j;
f>>n>>gmax;
for(i=1;i<=n;i++)
{
f>>v[i].gr>>v[i].cst;
}
for(i=1;i<=n;i++)
{
for(j=gmax;j>=v[i].gr;j--)
{
if(sol[j]<sol[j-v[i].gr]+v[i].cst)
{
sol[j]=sol[j-v[i].gr]+v[i].cst;
}
}
}
g<<sol[gmax];
return 0;
}