loj#P6854. 「ICPC World Finals 2021」公平分配
「ICPC World Finals 2021」公平分配
题目描述
在航行于七海并袭击了许多船只之后,红胡子船长和他的海盗同伴们终于准备好分赃了。根据一直以来的传统,船员们围成一个圆,并严格按照海盗等级排序。船长首先从战利品中取出占分数 的一部分,并把剩余部分传给下一个海盗。传到的海盗拿走相同的占分数 的战利品并传给下一个海盗。每个海盗的行为都是相同的,拿走传给他的战利品中占分数 的部分,然后把剩余的部分传给其他人。等级最低的海盗将最后剩下的战利品传给船长,船长再开始另一轮这种「公平」的分配,然后无限继续下去。
幸运的是,二十一世纪的海盗可以使用计算机来避免这个漫长的过程,以及当选取的分数 在某一步不能划分出整数个战利品时有船员顺手牵羊。你被海盗抓住了,现在海盗要求你找出一个合适的分数 。作为奖励,红胡子船长答应如果你能找到就留你一命。
分数 需要是一个严格在 和 之间的有理数。不需要在每一步分配中海盗们都得到整数个战利品。但是,如果无限地进行这个过程,每个海盗被分到的战利品总数必须是一个整数。
输入格式
输入包含两个整数 和 ,其中 是海盗数量(包括红胡子船长), 是战利品总数。
输出格式
输出一行两个正整数 和 ,其中上文提到的 。如果有多个满足条件的分数,输出 最小的,如果还有多个满足条件的分数,输出其中 最小的一个。如果不存在满足条件的分数,输出 impossible
后祈求宽恕即可。
8 51000
1 2
6 91000
2 3
10 1000000000000000000
impossible