CF785C Anton and Fairy Tale
题目描述
Anton 喜欢听童话故事,尤其是他最好的朋友 Danik 给他讲的时候。现在 Danik 正在给 Anton 讲一个童话故事:
“很久很久以前,有一位皇帝。他非常富有,拥有许多粮食。一天,他下令建造一座巨大的粮仓,用来存放所有的粮食。最优秀的工匠们连续三天三夜建造粮仓。但他们却疏忽了,粮仓上留了一个小洞,每天都有麻雀飞进来。麻雀飞来,叼走一粒粮食,再飞走……”
更正式地说,童话故事中发生了如下事情。第一天开始时,容量为 $n$ 粒粮食的粮仓是满的。然后每天(从第一天开始)发生如下事件:
- 每天会向粮仓运来 $m$ 粒粮食。如果 $m$ 粒粮食无法全部放入粮仓,则粮仓装满,放不下的粮食会被送回去(在本题中可以认为这些放不下的粮食不计入仓库)。
- 麻雀来吃粮食。在第 $i$ 天,有 $i$ 只麻雀来,也就是说第一天来一只,第二天来两只,依此类推。每只麻雀吃一粒粮食。如果仓库空了,麻雀什么也吃不到。
Anton 听烦了 Danik 描述每一只麻雀如何叼走仓库中的粮食。他也不知道故事什么时候会结束,所以让你帮忙计算,到第几天结束时,粮仓会第一次变空。帮助 Anton,写一个程序,计算出第几天这个事情会发生!
输入格式
输入仅包含一行,包含两个整数 $n$ 和 $m$($1 \leq n, m \leq 10^{18}$),分别表示粮仓的容量和每天运入的粮食数量。
输出格式
输出一个整数,表示粮仓第一次在某天结束时变空的那一天编号。天数从 $1$ 开始编号。
说明/提示
以第一个样例为例,粮仓容量为 $5$ 粒粮食,每天补充 $2$ 粒粮食。如下一步步:
- 第一天开始时粮仓已满,运来粮食因已满无变化。
- 第一天结束时来了一只麻雀,吃掉一粒,剩下 $5-1=4$ 粒。
- 第二天开始补充 $2$ 粒,但因满仓只能补满,仍是 $5$ 粒,溢出的一粒不计入。
- 第二天结束时来两只麻雀,吃掉两粒,剩下 $5-2=3$ 粒。
- 第三天开始补充 $2$ 粒,再次补满。
- 第三天结束来三只麻雀,吃掉三粒,剩下 $5-3=2$ 粒。
- 第四天开始补充 $2$ 粒,得到 $2+2=4$ 粒。
- 第四天结束来四只麻雀,吃掉四粒,剩下 $4-4=0$ 粒。粮仓此时变空。
所以答案是 $4$,也就是在第四天结束时,粮仓第一次变空。
由 ChatGPT 5 翻译