主题:[讨论]传送消息的问题
有一队n个人,先给他们编号:左起第k个人就是k号。
1号是个特殊的人,他不断地接收消息,每分钟他就会接到一份消息。已知,比一个人编号大并且手上没有消息的人都是他的后继者,而一个人的后继者中编号最小的一个是他的最先后继者。1号接到消息以后,会把消息立刻传给他的最先后继者,除了1号之外,每个人拿到消息后都会阅读一下这份消息,阅读完之后会立刻把消息传给他的最先后继者。不管是谁,如果他在传送消息时已经没有后继者了,他就会把这份消息扔掉。如果在同一时间内有多个人要传送消息,则编号小的优先。
现在你的任务是:输出t分钟后(即在t分钟要传送消息的人全部传送完之后)有几个人手上有消息,他们是哪几个人。当然,由于1号拿到消息之后总是把它给别人或者扔掉,因此他从来手上不会有消息,所以你只要输出2-n号中有几个人手上有消息、分别是哪几个人就行了。
[输入]
第1行是一个整数,表示人数n(3<=n<=30),第二行n - 1整数,表示2号、3号……n号阅读一份消息的时间(单位:分钟,比如一个人在第2分钟拿到消息,3分钟阅读完,则要到第5分钟才能给别人或者扔掉),最后一行是总时间t。
[输出]
一行输出,n - 1个整数,用0和1表示,依次表示2号、3号……n号在t分钟后手上有没有消息,0表示没有,1表示有。
[样例输入]
6
3 3 1 1 2
5
[样例输出]
1 0 1 0 1
1号是个特殊的人,他不断地接收消息,每分钟他就会接到一份消息。已知,比一个人编号大并且手上没有消息的人都是他的后继者,而一个人的后继者中编号最小的一个是他的最先后继者。1号接到消息以后,会把消息立刻传给他的最先后继者,除了1号之外,每个人拿到消息后都会阅读一下这份消息,阅读完之后会立刻把消息传给他的最先后继者。不管是谁,如果他在传送消息时已经没有后继者了,他就会把这份消息扔掉。如果在同一时间内有多个人要传送消息,则编号小的优先。
现在你的任务是:输出t分钟后(即在t分钟要传送消息的人全部传送完之后)有几个人手上有消息,他们是哪几个人。当然,由于1号拿到消息之后总是把它给别人或者扔掉,因此他从来手上不会有消息,所以你只要输出2-n号中有几个人手上有消息、分别是哪几个人就行了。
[输入]
第1行是一个整数,表示人数n(3<=n<=30),第二行n - 1整数,表示2号、3号……n号阅读一份消息的时间(单位:分钟,比如一个人在第2分钟拿到消息,3分钟阅读完,则要到第5分钟才能给别人或者扔掉),最后一行是总时间t。
[输出]
一行输出,n - 1个整数,用0和1表示,依次表示2号、3号……n号在t分钟后手上有没有消息,0表示没有,1表示有。
[样例输入]
6
3 3 1 1 2
5
[样例输出]
1 0 1 0 1