luogu#P11180. [ROIR 2018 Day2] 删除数字

[ROIR 2018 Day2] 删除数字

题目描述

译自 ROI 2018 Regional. Day2 T1. Удаление чисел

给定一个从 11nn 的自然数序列和一个自然数 kk。通过一个或多个操作删除序列中的数字。在每一个操作中,按升序查看剩余的数字,每隔 kk 个数字删除一个。如果在某一个操作之后剩余的数字少于 kk 个,则删除过程结束。

需要确定在第几个操作删除数字 nn,或者判断在删除过程结束前数字 nn 是否不会被删除。

例如,设 n=13,k=2n=13, k=2

  • 第一个操作将删除数字 2,4,6,8,10,122, 4, 6, 8, 10, 12,剩下的数字是 1,3,5,7,9,11,131, 3, 5, 7, 9, 11, 13
  • 第二个操作将删除数字 3,7,113, 7, 11,剩下的数字是 1,5,9,131, 5, 9, 13
  • 第三个操作将删除数字 5,135, 13,剩下的数字是 1,91, 9
  • 第四个操作将删除数字 99,剩下的数字是 11。由于只剩下一个数字,删除过程结束。

因此,数字 1313 将在第三个操作被删除。

需要编写一个程序,根据给定的 nnkk 确定数字 nn 在第几个操作被删除。

输入格式

第一行输入包含一个整数 nn (3n1018)(3 \leq n \leq 10^{18})

第二行输入包含一个整数 kk (2k100,k<n)(2 \leq k \leq 100, k < n)

输出格式

输出一个整数,表示数字 nn 被删除的操作编号;如果数字 nn 不会被删除,则输出 00

13
2
3

提示

详细子任务附加限制及分值如下表所示。

子任务 分值 nn 的限制 kk 的限制
11 1616 3n10003 \leq n \leq 1000 k=2k=2
22 1010 3n10183 \leq n \leq 10^{18}
33 1414 3n10003 \leq n \leq 1000 2k100,k<n2 \leq k \leq 100, k < n
44 2020 3n1063 \leq n \leq 10^{6}
55 4040 3n10183 \leq n \leq 10^{18}