Pagini recente » Cod sursa (job #1827491) | Cod sursa (job #1496825) | Cod sursa (job #2635756) | Cod sursa (job #1989329) | Cod sursa (job #3244621)
#include <bits/stdc++.h>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int g[1001], p[1001], n, gmax, v[1001], sp, sg, pmax=-1;
void citire()
{
in>>n>>gmax;
for(int i=1; i<=n; ++i)
in>>g[i]>>p[i];
}
void verificare()
{
sp=0;
sg=0;
for(int i=1; i<=n; ++i)
if(v[i]==2)
{
sg+=g[i];
sp+=p[i];
}
if(sg<=gmax && sp>=pmax)
pmax=sp;
}
void bt()
{
int k=1;
v[k]=0;
while(k)
{
while(v[k]<2)
{
v[k]++;
if(k==n)
verificare();
else
{
k++;
v[k]=0;
}
}
k--;
}
}
int main()
{
citire();
bt();
out<<pmax;
in.close(); out.close();
return 0;
}