答案一长串
#include<iostream>
#include<cstdio>
#define ull unsigned long long
using namespace std;
const int N = 1000005;
int q[N], p[N], num[N];
bool vis[N];
ull t;
int main(){
int n, m, c, k;
scanf("%d%d%d%d", &n, &m, &c, &k);
int cnt = 0;
for(int i = 1; i <= n; i++){
ull a;
scanf("%llu", &a);
t |= a;
}
for(int i = 1; i <= m; i++){
scanf("%d%d", q+i, p+i);
if((t >> p[i]) & 1)
num[q[i]] = 1;
}
int ans = 0;
for(int i = 1; i <= m; i++)
if(!num[q[i]]){
if(vis[p[i]])
continue;
ans++;
vis[p[i]] = 1;
}
if(!n && !m && k-ans == 64){
//超范围
puts("18446744073709551616");
return 0;
}
ull sum = 1;
for(int i = 1; i <= k-ans; i++)
sum *= 2;
printf("%ull", sum-n);
return 0;
}