D Wa * 8 求调
  • 板块学术版
  • 楼主SafariMo
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/30 21:51
  • 上次更新2024/3/31 07:44:35
查看原帖
D Wa * 8 求调
820807
SafariMo楼主2024/3/30 21:51
	inline void solve(){
		n=read(),m=read();int k=read();int u=n,v=m,w=k;
		if(n+m<__builtin_popcountll(k)) return puts("-1"),void();
		if((n+m&1)^(k&1)) return puts("-1"),void();
		int now=n+m,A=0,B=0,r=1,cnt=0;
		while(now){
			if(k&1){
				--now;
				if(!n&&!m) return puts("-1"),void();
				if(n>m) --n,A|=r;
				else --m,B|=r; 
			}
			else{
				if(now>__builtin_popcountll(k)&&n&&m){
					now-=2;n--,m--;
					A|=r,B|=r;	
				}
			}
			++cnt;
			if(cnt>60) return puts("-1"),void();
			k>>=1;
			r<<=1;
		}
		//cout<<(A^B)<<endl;
		if((__builtin_popcountll(A)!=u||__builtin_popcountll(B)!=v)||((A^B)!=w)) return puts("-1"),void();
		writes(A);
		writed(B);
		return;
	}
2024/3/30 21:51
加载中...