60分求助
#include<bits/stdc++.h>
using namespace std;
unsigned long long k,n,ur=0,m,c;
unsigned long long f[100];
bool ff[100];
int main()
{
scanf("%d%d%d%d",&n,&m,&c,&k);
for(int i=1;i<=n;i++)
{
unsigned long long x;
scanf("%d",&x);
int temp=0;
while(x>0)
{
f[temp]=max(x%2,f[temp]);
x/=2;
temp++;
}
}
for(int i=1;i<=m;i++)
{
int p,q;
scanf("%d%d",&p,&q);
if(f[p]==0&&ff[p]==0)
{
ur++;
ff[p]=1;
}
}
if(k-ur==64) cout<<18446744073709551616-n;
else
{
unsigned long long ans=pow(2,k-ur);
cout<<(ans-n);
}
return 0;
}
不知道哪儿有问题,求大佬指正orz