#include
#include
#include
#include
#include
#include
#define MAX 3001
using namespace std;
int next[MAX],f[MAX],l[MAX];
int main()
{
int i,n,num0=0,num1=0;;
memset(l,0,sizeof(l));
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&l[i]);
if(l[i])
num1++;
}
num0=n-num1;
for(i=1;i<=num0;i++)
f[i]=0;
for(i=num0+1;i<=n;i++)
f[i]=1;
int ci=1;
for(i=1;i<=n;i++)
{
if(!l[i])
{
next[ci]=i;
ci++;
}
}
for(i=1;i<=n;i++)
{
if(l[i])
{
next[ci]=i;
ci++;
}
}
int count=1;
ci=n-1;
while(ci--)
{
printf("%d ",f[count]);
count=next[count];
}
printf("%d\n",f[count]);
return 0;
}
好久不写了...程序我还是有点懒的看= =...,直接给你我的AC程序对拍...