In this

**HackerEarth XOR subsequences problem solution**You are given an array A consisting of N integers. Your task is to find the longest subsequence S, such that XOR of any two elements in S is non-zero.You are required to print the size of S(L) and the array of indices that are chosen for S. In case of multiple such arrays, choose the lexicographically smallest array.

## HackerEarth XOR subsequences problem solution.

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

using namespace std;

#define FIO ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)

#define mod 1000000007

#define endl "\n"

#define test ll t; cin>>t; while(t--)

typedef long long int ll;

int main() {

FIO;

test

{

ll n; cin>>n;

vector<ll>a(n);

map<ll,ll>mp;

vector<ll>ans;

for(int i=0;i<n;i++){

cin>>a[i];

mp[a[i]]++;

if(mp[a[i]]==1) ans.push_back(i+1);

}

cout<<ans.size()<<endl;

for(auto it:ans) cout<<it<<" ";

cout<<endl;

}

return 0;

}

### Second solution

`t = int(input())`

while t > 0:

t -= 1

n = int(input())

s = set()

ans = []

i = 0

for x in map(int, input().split()):

i += 1

if x not in s:

s.add(x)

ans += [i]

print(len(ans))

print(*ans)

## 0 Comments