Pagini recente » Cod sursa (job #2965872) | Cod sursa (job #1877399) | Cod sursa (job #170860) | Cod sursa (job #972366) | Cod sursa (job #1236518)
#include <fstream>
using namespace std;
ifstream fin ("zebughil.in");
ofstream fout ("zebughil.out");
int N, G, P[20], V[1<<18];
int main()
{
for (int k=1; k<=3; k++)
{
fin >> N >> G;
for (int i=1; i<=N; i++) fin >> P[i];
for (int i=1; i<=1<<N; i++)
V[i] = -1;
V[0] = G;
for (int nrc=1; nrc<=N;)
{
for (int j=1; j<1<<N; j++)
{
if (V[j] >= 0) V[j] = G;
else
{
for (int i=1; i<=N; i++)
{
if (j & (1 << (i-1))) V[j] = max (V[j], V[j - (1 << (i-1))] - P[i]);
}
}
}
if (V[(1<<N) - 1] >= 0)
{
fout << nrc << '\n';
nrc = N+1;
}
else nrc += 1;
}
}
fout.close();
return 0;
}