记录编号 425100 评测结果 AAAAAAAAAA
题目名称 序列最小值 最终得分 100
用户昵称 GravatarAntiLeaf 是否通过 通过
代码语言 C++ 运行时间 0.970 s
提交时间 2017-07-14 17:51:20 内存使用 8.29 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=1048577;
void FWT_and(long long*,int,int);
long long A[maxn];
int n;
int main(){
	freopen("and_min.in","r",stdin);
	freopen("and_min.out","w",stdout);
	scanf("%d",&n);
	while(n--){
		int x;
		scanf("%d",&x);
		A[x]++;
	}
	FWT_and(A,1<<20,1);
	for(int i=0;i<(1<<20);i++)A[i]*=A[i];
	FWT_and(A,1<<20,-1);
	int ans=0;
	while(!A[ans])ans++;
	printf("%d\n",ans);
	return 0;
}
void FWT_and(long long *A,int n,int tp){
	for(int k=2;k<=n;k<<=1)for(int i=0;i<n;i+=k)
		for(int j=0;j<(k>>1);j++)A[i+j]+=tp*A[i+j+(k>>1)];
}