Pagini recente » Borderou de evaluare (job #2689037) | Borderou de evaluare (job #2123353) | Borderou de evaluare (job #2418209) | Borderou de evaluare (job #2183640) | Cod sursa (job #1989276)
#include <utility>
#include <fstream>
#define x first;
#define y second;
using namespace std;
const int NMAX=17;
ifstream fin("zebughil.in");
ofstream fout("zebughil.out");
int N,G,g[NMAX+3];/// NMAX+3;
pair<int, int> d[(1 << NMAX) + 4];
void rezolv()
{
fin >> N >> G;
for(int i=0;i<N;++i)
fin >> g[i];
for(int j=1;j<(1 << N);++j)
{
d[j]={NMAX,0};
for(int i=0;i<N;++i)
if(j >> i & 1)
{
int p = j ^ 1 << i;
if(d[p].y + g[i] <= 0){
d[j]=min(d[j],{d[p].x,d[p].y+g[i]});
} else {
f[j]=min(d[j],{d[p].x+1,-G+g[i]});
}
}
}
fout << d[(1<<N)-1].x << '/n';
}
int main()
{
int T=3;
while(T--)
{
rezolv();
}
return 0;
}