#include<bits/stdc++.h>
using namespace std;
unsigned long long n, m, k, c, i, j, p, q, x, temp, ans;
unsigned long long anm[1000005];
bool a[64];
unsigned long long lowbit(unsigned long long y) {
return y&-y;
}
int main() {
cin>>n>>m>>c>>k;
for(i=1; i<=n; i++) {
cin>>anm[i];
}
for(i=1; i<=m; i++) {
cin>>p>>q;
if(a[p]==0)
x++;
a[p]=1;
}
for(i=1; i<=n; i++) {
temp=anm[i];
while(temp) {
if(a[(unsigned long long)log2(lowbit(temp))]==1) {
a[(unsigned long long)log2(lowbit(temp))]=0;
x--;
}
temp-=lowbit(temp);
}
}
if(k-x==64&&!n){
cout<<"18446744073709551616";
return 0;
}
else ans=pow(2,(k-x))-n;
cout<<ans;
return 0;
}
跟结果差1,代码结果18014398509177476,正确答案18014398509177475