1804: cokolade

内存限制:128 MB 时间限制:1.000 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:8 通过:4

题目描述

     当Mirko是一个喜欢排队的人,所以他决定为他的朋友组织一个无限量的派对。为了达到排队的要求,他在N个桌子上都放了糖果。每个桌子上的糖果的数量是bi,在这个无限量派对的第一天,Mirko将每个桌子安排一个朋友;第二天他将每个桌子安排2个朋友,第三天,每个桌子三个朋友。总之,到第K天,他将每个桌子安排K个朋友。
当他的朋友进入房间时,K个人会在每个桌子上坐下,并将糖果最大程度的分成相同的K份,然后处理掉可能剩下来的。在分完糖果后,由于嫉妒或是其他原因,只有分得相同数量糖果的两桌人才会谈话交流。Mirko一直在研究他派对的社交动态。首先,他想知道如下几个问题的答案:若是在1和N中间给个数字S,那么有S桌人进行交流谈话最早会是在哪天?
    通常,Mirko是不能解决他自己的问题的,所以每过几天,他都会来问你对于某个S的答案是什么?哎,他会一直问。所以,你要写一个程序,求出Mirko所需的答案,也就是从1到N的每个S。
    请注意:在每次派对前,Mirko都会重新供应每桌所需的糖果,这就意味着,每次糖果的供给数量都与第一次派对之前的糖果一样的,除此之外,在下次派对开始前所有的人都会离开。

输入格式

第一行包含正整数N。
第二行包含N个正整数,第i个数代表了在第i张桌子上的糖果数。

输出格式

共N行,第S行包含S桌人一组的谈话发生所需的天数。若是没有那么多桌一组,就输入-1。

输入样例 复制

8
12 16 95 96 138 56 205 84

输出样例 复制

1
5
14
49
96
97
139
206

数据范围与提示

40%的数据 每张桌糖果数≤1000;
100%的数据N≤100,每张桌糖果数≤1000000。