不知道为什么WA了,极限数据也用double过掉了,数据点我下不了
#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define ls p<<1
#define rs p<<1|1
#define debug puts("debug");
const int M=1e6+5,P=1e9+7,base=269;
bool aaaa;
int n,m,k,c,mark[65];
unsigned long long hv,A[M],B[70];
bool bbbb;
int main(){
// cout<<((&bbbb)-(&aaaa))/1024.0/1024.0<<endl;
freopen("zoo.in","r",stdin);
freopen("zoo.out","w",stdout);
int a,b;
B[0]=1;
scanf("%d%d%d%d",&n,&m,&c,&k);
for(int i=1;i<k;++i)B[i]=B[i-1]*2;
for(int i=1;i<=n;++i){
scanf("%llu",&A[i]);
hv|=A[i];
}
for(int i=1;i<=m;++i){
scanf("%d%d",&a,&b);
mark[a]=1;
}
for(int i=0;i<k;++i)
if(!mark[i])hv|=B[i];
double ans=1;
for(int i=0;i<k;++i){
if(hv&B[i])ans*=2;
}
printf("%.0lf",ans-n);
return 0;
}