分组错误求助
查看原帖
分组错误求助
575698
262620zzj楼主2023/8/21 14:27

只WA#28

#include<cstdio>
#include<algorithm>
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
namespace fast_input{
	template<typename T>void read(T &x){
		x=0;
		char c=getchar();
		while(c<'0'||c>'9')c=getchar();
		while(c>='0'&&c<='9'){
			x=(x<<1)+(x<<3)+(c^48);
			c=getchar();
		}
	}
}
using namespace fast_input;
using namespace std;
const int N=1e5+5;
int lowbit(int c){
	return c&-c;
}
int n,a[N],sum,p=114514,aux1,aux2,tot1,tot2;
int main(){
	read(n);
	rep(i,1,n)read(a[i]);
	if(n&1^1){
		printf("998244353\n");
		for(int i=1;i<=n;i+=2)printf("01");
		return 0;
	}
	rep(i,1,n)p=min(p,lowbit(a[i]));
	rep(i,1,n)sum+=a[i]/p;
	if(sum&1)printf("-1");
	else{
		printf("%d\n",p<<1);
		rep(i,1,n)a[i]=a[i]/p&1?1:2;
		rep(i,1,n){
			if(a[i]==1)tot1++;
			else tot2++;
		}
		aux1=tot1,aux2=tot2;
		rep(i,1,n){
			if(a[i]==1){
				if(tot1-aux1<2)printf("0");
				else printf("%d",aux1&1);
				aux1--;
			}
			else printf("%d",aux2&1),aux2--;
		}
	}
	return 0;
}
2023/8/21 14:27
加载中...