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


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)