记录
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+100;
int m1=0,m2,n,a[N];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(a[i]==1)
{
m1++;
}
}
m2=n-m1;
if(m1==0)
{
for(int i=1;i<=n;i++) printf("-1 ");
return 0;
}
if(m2==0)
{
for(int i=1;i<=n;i++) printf("1 ");
return 0;
}
int x=1-(n%2);
if(m1==1)
{
for(int i=1;i<=n/2;i++)
{
printf("-1 ");
}
printf("1 ");
for(int i=1;i<=n/2-x;i++)
{
printf("-1 ");
}
return 0;
}
if(m2==1)
{
for(int i=1;i<=n/2;i++)
{
printf("1 ");
}
printf("-1 ");
for(int i=1;i<=n/2-x;i++)
{
printf("1 ");
}
return 0;
}
if(m1>m2)
{
for(int i=1;i<=m2;i++)
{
for(int j=1;j<=m1/m2;j++)
{
printf("1 ");
}
printf("-1 ");
}
int x=m1/m2;
for(int i=1;i<=m1-m2*x;i++)
{
printf("1 ");
}
}
else
{
if(m1>=(m2-1)*2)
{
for(int i=1;i<=m1-1;i++)
{
printf("1 ");
for(int j=1;j<=m2/(m1-1);j++)
{
printf("-1 ");
}
}
printf("1 ");
}
else
{
for(int i=1;i<=m1;i++)
{
for(int j=1;j<=m2/m1;j++)
{
printf("-1 ");
}
printf("1 ");
}
int x=m2/m1;
for(int i=1;i<=m2-m1*x;i++)
{
printf("-1 ");
}
}
}
return 0;
}