In this

**HackerEarth A subset in a sequence problem solution**You are given a set S consisting of non-negative powers of three S = {1, 3, 9, 27, ...}. Consider the sequence of all non-empty subsets of S ordered by the value of the sum of their elements. You are also given a single element n. You are required to find the subset at the nth position in the sequence and print it in increasing order of its elements.## HackerEarth A subset in a sequence problem solution.

`#include<bits/stdc++.h>`

#define int long long int

#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);

using namespace std;

int poww(int n,int p)

{

int power=1;

for(int i=0;i<p;i++)

{

power=power*n;

}

return power;

}

int32_t main()

{

fast;

int t;

cin>>t;

while(t--)

{

int n,cnt=0,x;

cin>>n;

vector<int> v;

while(n)

{

x=n&1;

if(x)

{

v.push_back(poww(3,cnt));

}

n=n>>1;

cnt++;

}

cout<<v.size()<<'\n';

for(int i=0;i<v.size();i++)

{

cout<<v[i]<<" ";

}

cout<<'\n';

}

}

### Second solution

`t = int(input())`

while t > 0:

n = int(input())

a = []

for i in range(0, 40):

if n >> i & 1:

a.append(3 ** i)

print(len(a))

print(*a)

t -= 1

## 0 Comments