![](https://i-blog.csdnimg.cn/blog_migrate/d64ca1fb00d7cc5520e1a5d56797c742.png)
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll N=1e6+9,inf=8e18;
ll a[N],n,m;
bool check(int i,int j,int k){
return (a[i]+a[j]+a[k])*(a[i]^a[j]^a[k])>=m;
}
signed main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
ll ans=0;
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
for(int k=j+1;k<=n;k++){
if(check(i,j,k))ans++;
}
}
}
cout<<ans<<endl;
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/c06aa750cdc19a5b6dbcc9655b44a5b2.png)
#include<bits/stdc++.h>
using namespace std;
const int N=15;
bitset<N> vis;
int a[N];
void dfs(int dep,int n){
int i;
static int count=0;
static int coun=0;
static int co=0;
for(int i=1;i<=n;++i)
{
cout<<"count="<<count++<<"i="<<i<<"\n";
if(vis[i]){
cout<<"coun="<<coun++<<"\n";
continue;
}
vis[i]=true;
a[dep]=i;
dfs(dep+1,n);
vis[i]=false;
cout<<"co="<<co++<<"\n";
cout<<"\n";
}
if(dep==n+1){
for(i=1;i<=n;i++)cout<<a[i];
if(i==1+n)cout<<"\n";
return;
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int n;
cin>>n;
dfs(1,n);
return 0;
}