95分求助
查看原帖
95分求助
115067
Adis_FireDevil楼主2020/11/13 19:59

第20个点WA了

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long n,m,c,k,a[700001],s,r[700011];
long long ans[77]={0,1},l;
bool b=0;
int f(){
	for(int i=1;i<=71;i++){
		ans[i]=ans[i-1]/10+ans[i]*2;
		ans[i-1]%=10;
	}
}
int main(){
	cin>>n>>m>>c>>k;
	int d;
	for(int i=1;i<=n;i++){
		cin>>s;
		if(s==0)continue;
		d=-1;
		while(s!=1){
			d++;
			a[d]=max(a[d],s%2);
			s/=2;
		}
		d++;
		a[d]=1;
	}
	int q,w;
	for(int i=1;i<=m;i++){
		cin>>q>>w;
		if(a[q])r[q]=1;
		else {b=1;r[q]=-1;}
	}
	for(int i=0;i<k;i++){
		if(r[i]!=-1){
			f();
		}
	}
	for(int i=18;i>=1;i--){
		l*=10;
		l+=ans[i];
	}
	l-=n;
	bool b;
	for(int i=70;i>=19;i--){
		if(ans[i])b=1;
		if(!b)continue;
		cout<<ans[i];
	}
	cout<<l;
}
2020/11/13 19:59
加载中...