hack:
input:
1 0 1 64
1
output:
18446744073709551615
wrong output:
18446744073709551616
hack @nr0728 的代码(没错就是我自己):
#include<bits/stdc++.h>
#define rep(i,a,b,c) for(ull i=a;i<=b;i+=c)
#define N 1000005
using namespace std;
typedef unsigned long long ull;
ull n,m,c,k,sl,bx;
ull a[N],p[N],q[N];
bool vis[70];
ull sum;
int main()
{
scanf("%llu%llu%llu%llu",&n,&m,&c,&k);
rep(i,1,n,1)
{
scanf("%llu",&a[i]);sl|=a[i];
}
rep(i,1,m,1)
{
scanf("%llu%llu",&p[i],&q[i]);
bx|=1ull<<p[i];
}
rep(i,0,k-1,1)
{
if(!((bx>>i)&1ull)||(sl>>i)&1ull) sum++;
}
if(sum==64) cout<<((ull)-1)/10<<((ull)-1)%10+1;
else printf("%llu\n",(1ull<<sum)-n);
return 0;
}