Dark♂游戏
题号:NC15893
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

    某一天夜晚,宇宙中一个名为star星球的行星遭受到了万年难得一遇的全球大停电,据居民说,是黑暗之神搞的鬼!每次他的到来都能够让全球感到恐慌,因为一旦回答不出他的问题,将永远置身于黑暗之中,而且,黑暗之神为了刁难所有的居民,竟然明确告诉他们,他会给出多少个关卡,必须有一个人站出来挑战,只有完全通过了,这个星球才能够恢复正常。

    每一关黑暗之神都会给出一个数p,以及另一个数x,其中他将数p称为黑暗点,他要求,这个人必须要能够确定一个数值k,使得k个数值不断相加,最终的结果能够等于黑暗点。其中第i个数的数值为x^(k-i)。有趣的是,你可以自己指定每一个x^(k-i)的值是正数还是负数。假如这个人不能够找到满足条件的k时,那么他需要说出”impossible”。任何一个关卡的错误都会导致star星球永远陷入黑暗。但是他觉得自己不够聪明,所以想寻求聪明的地球人的帮助,是的,他看上了你,你能够帮他逃出黑暗吗?

输入描述:

首先输入一个T,代表有T个关卡
其次对于每一个关卡都有两个整数p和x。 (T<=100 , 0<p<1e15 , 0<x<100)

输出描述:

对于任意一关,你都需要输出一个整数k。
如果无法找到k满足黑暗之神,那么请输出”impossible”
对于每一个k,你都需要输出k个符号,代表第i个数是正数还是负数,如果是正数,则输出’+’符号,反之输出’-’符号。如果存在多组答案,则输出符号最少的那一组。
示例1

输入

复制
2
5 3
3 3

输出

复制
3
+--
impossible

说明

3^2-3^1-3^0=5

备注:

当x = 1时,保证p <= 1e8