Cod sursa(job #3134087)
Utilizator | Berendea Andrei Berea | Data | 28 mai 2023 14:22:59 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 10 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.66 kb |
#include <fstream>
#include <vector>
using namespace std;
long long int n,g,x,y,s,r,maxi;
vector<pair<int,int> >v;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int main()
{
cin>>n>>g;
for (long long int i=1;i<=n;i++)
{
cin>>x>>y;
v.push_back(make_pair(x,y));
}
for (long long int i=(1<<n)-1;i>=1;i--)
{
s=0;
r=0;
for (long long int j=n-1;j>=0;j--)
{
if ((i|(1<<j))==i)
{
s+=v[n-(j+1)].first;
r+=v[n-(j+1)].second;
}
}
if (s<=g && r>=maxi) maxi=r;
}
cout<<maxi;
}