#include <iostream>
#include <vector>
#include <algorithm>
#include <utility>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
vector<pair<long long int,int> > a;
vector<int> bit(31);
int n,k;
cin>>n>>k;
vector<int> nums(n);
for(int i=0;i<n;i++)
cin>>nums[i];
for(int i=0;i<n;i++){
for(int j=0;j<31;j++){
if(nums[i]&(1<<j))bit[j]++;
}
}
for(int i=0;i<31;i++){
long long w=((long long)(1<<i))*bit[i];
a.push_back(make_pair(w,i));
}
sort(a.begin(), a.end(),[](auto l,auto r){
return l.first>r.first || (l.first==r.first && l.second<r.second);
});
int ans=0;
for(int i=0;i<k&&i<a.size();i++){
ans|=(1<<a[i].second);
}
cout<<ans<<endl;
}
}
#include <vector>
#include <algorithm>
#include <utility>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
vector<pair<long long int,int> > a;
vector<int> bit(31);
int n,k;
cin>>n>>k;
vector<int> nums(n);
for(int i=0;i<n;i++)
cin>>nums[i];
for(int i=0;i<n;i++){
for(int j=0;j<31;j++){
if(nums[i]&(1<<j))bit[j]++;
}
}
for(int i=0;i<31;i++){
long long w=((long long)(1<<i))*bit[i];
a.push_back(make_pair(w,i));
}
sort(a.begin(), a.end(),[](auto l,auto r){
return l.first>r.first || (l.first==r.first && l.second<r.second);
});
int ans=0;
for(int i=0;i<k&&i<a.size();i++){
ans|=(1<<a[i].second);
}
cout<<ans<<endl;
}
}
Comments
Post a Comment