/*
第 6 题
腾讯面试题:
给你 10 分钟时间,根据上排给出十个数,在其下排填出对应的十个数
要求下排每个数都是先前上排那十个数在下排出现的次数。
上排的十个数如下:
【0,1,2,3,4,5,6,7,8,9】
举一个例子,
数值: 0,1,2,3,4,5,6,7,8,9
分配: 6,2,1,0,0,0,1,0,0,0
0 在下排出现了 6 次,1 在下排出现了 2 次,
2 在下排出现了 1 次,3 在下排出现了 0 次....
以此类推..


1)如果上排数列中有0,此时如果上排数列中无0,1,2,n-4这四个数,则下排数列无解;
否则下排数列中0出现的次数为n-4;1出现的次数为2;2出现的次数为1;n-4出现的次数为1;其余为0。
2)如果上排数列中无0,则下排数列全0,是其唯一解。

10
0 1 2 3 4 5 6 7 8 9
6
0 1 4 3 2 2
*/

//未判断无解
#include<iostream>
#include<stdio.h>
using namespace std;

int a[100];

int main()
{
int n,i,f;
while(scanf("%d",&n))
{
f=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]==0) f=1;
}

if(f==0)
{
for(i=0;i<n-1;i++)
printf("0 ");
printf("0\n");
}
else
{
for(i=0;i<n;i++)
{
if(a[i]==0) printf("%d ",n-4);
else if(a[i]==1) printf("2 ");
else if(a[i]==2||a[i]==n-4) printf("1 ");
else printf("0 ");
if(i==n-1) printf("\n");
}
}
}
return 0;
}