Professional Documents
Culture Documents
Hercule
Hercule
#include<cmath>
#include<iostream>
v[k]=0;
double a;
a = (log(k)*1.0)/log(2);
// caz particular 2^a
if ( int(a) == a)
for(int p=0; p<=a-1; p++)
v[putere(2,p)] = 1;
a=int (a);
for(int p=0; p<=a-1; p++)
v[putere(2,p)] = 1;
int b;
int c;
c = int(a);
b=k-putere(2,c);
cout<<b<<" ";
v[b]=1;
for(int i=0; i<=c-1; i++)
if(b==putere(2,i))
{
v[b]=0;
for(int j=1; j <= putere(2, c-2)-1; j++)
if(putere(2,c-1)+j+b<k)
if (v[putere(2,c-1)-j] == 0 && v[putere(2,c-1)+j+b]==
0)
{
v[putere(2,c-1)-j] = 1;
v[putere(2, c-1)+j+b] = 1;
break;
}
}
int sum=1;
int taieturi=0;
for(int i=1; i<=k; i++)
if(v[i]==1)
{
sum += i;
taieturi++;
}
if (sum==k)
{
fout<<taieturi<<'\n';
for(int i=1; i<=k; i++)
if(v[i]==1)
fout << i << " ";
}
else fout<<"-1";
fout<<'\n';