Pagini recente » Cod sursa (job #1793776) | Cod sursa (job #1145718) | Cod sursa (job #472585) | Cod sursa (job #533732) | Cod sursa (job #2011881)
#include <iostream>
#include <fstream>
using namespace std;
ifstream si("zebughil.in");
ofstream so("zebughil.out");
const int NMAX=17;
int v[NMAX];
int v[1<<NMAX][NMAX+1];
int main()
{
int n,g;
for(int cc=1;cc<=3;++cc)
{
si>>n>>g;
for(int j=0;j<n;++j)
si>>v[j];
v[0][0]=0;
int all=(1<<n)-1;
for(int i=1;i<=all;++i)
for(int c=0;c<=n;++c)
v[i][c]=-1;
for(int i=0;i<=all;++i)
{
for(int j=0;j<n;++j)
{
if(i&(1<<j))
continue;
for(int c=0;c<=n;++c)
{
if(v[i][c]!=-1)
{
v[i+(1<<j)][c]=max(v[i+(1<<j)][c],v[i][c]-v[j]);
if(c+1<=n)
v[i+(1<<j)][c+1]=max(v[i+(1<<j)][c+1],g-v[j]);
}
}
}
}
int sol=2000000000;
for(int c=1;c<=n;++c)
if(v[all][c]!=-1)
{
sol=c;
break;
}
so<<sol<<'\n';
}
return 0;
}