Problem5345--奖牌颁发

5345: 奖牌颁发

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

小 D 希望在 2021 年的 ION 上拿到金牌,他无聊的时候在官网上看到了名额分配方案:
在所有获奖人员中有 20%20\%20% 获得金牌,30%30\%30% 获得银牌,剩下的 50%50\%50% 获得铜牌。
特殊的,如果有很多人分数一样,那么他们获得相同的牌子。
但是这样会出现一个问题,大于某个分数的人的个数小于理论上拿金牌的人数,而加上这个分数的人数之后的总人数又大于理论上拿金牌的人数。这时,我们钦定这些人拿金牌。
并且拿金牌的人数如果比理论上的多,多出来的这部分占用银牌名额,如果银牌名额全部被占用,将没有选手获得银牌。
如果银牌名额占用了铜牌名额,处理方式同上。
例如一共有 101010 个人有牌子拿,其中 888 个人分数相同且比剩下两个人分数高,那么这八个人拿金牌,剩下两个人拿铜牌。
现在小 D 告诉你所有有牌子的选手的分数,让你告诉他每个人分别是什么牌子。

Input

一行一个正整数 nnn 代表参赛选手的数量。
一行 nnn 个正整数代表每个参赛选手的分数。

Output

一行 nnn 个正整数代表每个选手的获奖情况,000 代表金牌,111 代表银牌,222 代表铜牌。

Sample 1 Input

10 
600 600 600 600 600 600 600 600 500 550

Sample 1 Output

0 0 0 0 0 0 0 0 2 2

HINT

【数据规模】
对于 10%10\%10% 的数据,每个选手不是 000 分就是 600600600 分。
对于 100%100\%100% 的数据,1≤n≤2×106 1 \leq n \leq 2 \times 10^6 1n2×106,选手分数都小于等于 600600600,选手人数一定是 101010 的倍数。

Source/Category