#3693. 松鼠吃果子

松鼠吃果子

题目描述

狐狸尼克刚把冰激凌甜筒卖完,正得意的哼着小曲数着钞票,突然一只松鼠从他面前一闪而过。尼克赶紧把钞票藏好,正想追时,发现那只松鼠早已不见了踪影……

当尼克走过一条街时,发现那只松鼠正在树上吃果子。树上共有 NN 个果子,由下向上串排成一列,并标号 1, 2, ⋯, N。小松鼠从最下面的果子上开始向上跳,并且第 ii 次跳跃时,可以一次跳过 i×i×ii × i × i mod 5 的余数 + 1 个果子( 即 i×i×ii × i × i % 5 + 1 ),并把当前脚下的一个果子吃了。如果上面有果子,在重力的作用下,都将向下掉下一格。

例如:第 1 次跳从 1 号果子上跳过 1 × 1×1 % 5 + 1 = 2 个果子,可跳到 3 号果子上,并把 3 号果子吃了;第 2 次从 4 号果子上( 落在原来第 3 个果子的位置 ) 跳过 2 × 2 × 2 % 5 + 1 = 4 个果子,可以跳到 8 号果子上,并把 8 号果子吃了;如此下去……。

当然,总有一次松鼠会跳出这串果子的最上面,设为第 KK 次,它吃不到任何果子了。这时它回到最下面的果子上,重做它的第 KK 次跳,以求吃到果子。

狐狸尼克看的很是投入,尼克很想知道松鼠吃的第 MM 个果子的标号( 即第 MM 跳吃到的果子标号 )。

输入格式

输入共两行,第一行为整数 NN,第二行为整数 MM,意义如题目所述。

输出格式

输出共一行一个整数,即松鼠吃的第 MM 个果子的标号。数据保证一定有解。

样例

10
4
9

样例说明

松鼠吃掉的果子标号依次为3, 8, 5 ( 回到下面重做第 3 跳 ),9 ( 回到下面重做第 4 跳 )。

数据范围

测试点编号 M,N
1~2 MN20M≤N≤20
3~6 MN100M≤N≤100
7~10 没有额外限制

对于100%的数据:1MN1,0001 ≤ M ≤ N ≤ 1,000

来源

温州市计算机学会2023比赛(小学组) T4