博丽神社的巫女(二)
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

小红来到了博丽神社,发现博丽神社门口有一个赛钱箱。

这时神社里走出了一个巫女,对小红说:给你一个数组,你可以对任意元素进行任意次“该元素除以2向下取整”的操作,只要你能让这个数组所有元素之和等于100000,你就能拿走赛钱箱里所有的钱,否则你就必须往赛钱箱投十万元,你想和我玩这个游戏吗?

小红很想赚取赛钱箱里的金币,请你帮帮小红。

输入描述:

第一行输入一个正整数n,代表巫女给小红的数组大小。
第二行输入n个正整数a_i,代表数组的元素。
1\leq n\leq 100
1\leq a_i \leq 10^5
保证所有元素之和S的范围满足100000 \leq S \leq 200000

输出描述:

如果小红必然输掉游戏,请输出-1。
否则输出n个非负整数b_i(0\leq b_i \leq 10^5),分别代表对第i个元素执行b_i次操作。
示例1

输入

复制
2
50000 100000

输出

复制
0 1

说明

对第二个元素操作1次即可。
方案不唯一,输出[12345,0]也是可以的。
示例2

输入

复制
2
55555 66666

输出

复制
-1