从今天开始小学期结束,开始研究训练群里几周前发布的任务。
https://vjudge.net/contest/381776#problem/C
这次的题目是研究位运算,xor运算符就是^,明天继续研究位运算的题。
#include <iostream>
using namespace std;
int main()
{
int N=0,X=0,*a,temp=-1;
a=new int[N];
cin>>N>>X;
for(int i=0;i<N;i++)
{
cin>>a[i];
}
for(int i=0;i<N;i++)
{
int b=a[i];
for(int j=0;j<N;j++)
{
if(j!=i&&a[j]==b) {temp=0;}
}
}
for(int i=0;i<N;i++)
{
int b=(a[i]&X);
for(int j=0;j<N;j++)
{
if(b==a[j]&&j!=i) {temp=1;}
}
}
if(temp==-1)
{
for(int i=0;i<N;i++)
{
int b=(a[i]&X);
for(int j=0;j<N;j++)
{
if(j!=i)
{
int c=(a[j]&X);
for(int q=0;q<N;q++)
{
if(c==b&&q!=j||c==a[q]&&q!=j) {temp=2;}
}
}
}
}
}
cout<<temp<<endl;
}