Pagini recente » Cod sursa (job #3310503) | Cod sursa (job #3330709) | Monitorul de evaluare | Cod sursa (job #3312952) | Cod sursa (job #3320463)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
struct obiect{
int g,p;
};
int main()
{
int n,k;
in>>n>>k;
vector<obiect> v(n);
vector<int> pret(k+1,-1);
pret[0]=0;
for(auto &ob:v)
{
in>>ob.g>>ob.p;
}
for(auto ob:v)
{
for(int j=k;j>=ob.g;j--)
{
if(pret[j-ob.g]!=-1)
{
pret[j]=max(pret[j],pret[j-ob.g]+ob.p);
}
}
}
int maxim=-1;
for(int i=0;i<=k;i++)
{
maxim=max(maxim, pret[i]);
}
out<<maxim;
return 0;
}