去过很多西方国家的Hxx1喜欢给我们讲他的旅行见闻
有一天他讲了他与外国人谈笑风生时听到的故事

“很久很久以前,有一位国王突发奇想,想建一座大谷仓。
将所有的谷子都存在这个谷仓里。工匠们干了三天三夜,终于完成了,
然和这个谷仓有一个缺口,所以每天都会有麻雀来吃谷子…。

简单的说吧:有一个容量为n的谷仓,每天早晨会有m个单位的谷子存进去……

‘那么谷仓没有那么多空间呢?’

‘too simple!当然是装满了,剩下的就倒掉了。’
然后第i天就会有i个麻雀来吃谷子,每只麻雀一天会吃掉一个单位的谷子。。。

w222222s不想听这个故事了,他想知道谷仓什么时候会变成空的?请你帮他写个程序判断那将会是第几天?

Input

输入只有一行,这一行有两个整数n,m(1 ≤ n, m ≤ 1018) 分别代表谷仓的容量和每天带来的谷子,谷仓一开始是满的
Output

输出一个整数,代表第几天谷仓会第一次变成空的
Example

Input

5 2

Output

4

Input

8 1

Output

5

Note

在第一个样例中,谷仓的容量是5,每天会有2个单位谷子进入

第一天开始,由于谷仓是满的,什么都没有发生
第一天结束有一只麻雀来吃谷子 ,剩下了5 - 1 = 4 .
第二天有2单位谷子存入,谷仓再次变成满的
第二天结束的时候两只麻雀来了 ,剩下5 - 2 = 3
第三天2单位谷子存入,谷仓再次变成满的
第三天有三只麻雀前来,谷仓中还有5 - 3 = 2
第四天有两个单位谷子存入,现在谷仓中有2 + 2 = 4 个单位谷子
这一天结束的时候有四只麻雀来吃谷子 4 - 4 = 0 谷仓空了

所以答案是4,也就是在4天谷仓会变成空的

二分查找。可是直接查找会超数据范围(10e18)
开始有n个,从第一天开始,一直到m+1天开始,谷仓都是满的。到第m+1天结束,会剩下n-m-1个谷物。在n-m-1的基础上二分查找x天后谷仓变空。
把m+2天看作为第一天,那么这天结束后会剩下(n-m-1)-(m+2-m)个谷物….第二天-(m+2-m+1)
就是说把m+2天看作为第一天后,每天结束会减少2,3,4,5,x+1 个谷物。
综上,二分查找的标准就是n-m-1和(2+mid+1)*mid/2的大小关系。answer=m+1+x;
ps:当n<=m时直接输出n天就行

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
#define ll long long
int main()
{ll n,m;while(cin>>n>>m){if(n<=m){printf("%lld\n",n);continue;}else{n=n-m;ll l=0,r=2e9;while(l<r){ll mid=(l+r)/2;if(mid*(mid+1)/2>=n)r=mid;elsel=mid+1;}printf("%lld\n",l+m);}}
}

Anton and Fairy Tale(二分)相关推荐

  1. CodeForces 785C Anton and Fairy Tale 二分

    题意: 有一个谷仓容量为\(n\),谷仓第一天是满的,然后每天都发生这两件事: 往谷仓中放\(m\)个谷子,多出来的忽略掉 第\(i\)天来\(i\)只麻雀,吃掉\(i\)个谷子 求多少天后谷仓会空 ...

  2. Anton and Fairy Tale CodeForces - 785C(二分+思维)

    Anton likes to listen to fairy tales, especially when Danik, Anton's best friend, tells them. Right ...

  3. Anton and Fairy Tale

    Anton likes to listen to fairy tales, especially when Danik, Anton's best friend, tells them. Right ...

  4. C. Anton and Fairy Tale

    链接 [https://codeforces.com/contest/785/problem/C] 题意 初始时有n,第1天先加m开始吃1,但总的不能超过n,第i天先加m开始吃i(如果不够或刚好就吃完 ...

  5. codeforce Anton and Fairy Tale

    题意:有一个谷仓,它的容量为N.第i天先会增加M(不会超出它的容量),然后减少i, 问第几天后谷仓为空,且第一天谷仓是满的. 第i天 增加 减少 1 0 1 2 1 2 3 2 3 -- -- -- ...

  6. Fairy tale(BFS + 大模拟)

    一.题目链接: Fairy tale 二.题目大意: 给你一个N × N 的地图,图上的每个点有四种方向(E W S N),代表着移动方向. 在 t = 0 时,saya 在 (1, 1),treas ...

  7. 动漫推荐之 Fairy Tale 妖精的尾巴

    永远的Fairy Tale!

  8. Fairy Tale (《传奇》英文版)

    这首<Fairy Tale>的旋律应该是中国歌迷再熟悉不过的了,这是迈克学摇滚在2010年的中国巡演中给大家带来的惊喜.填上英文歌词后的<传奇>会有怎样的意境呢?我们一起来静静 ...

  9. Fairy Tale - 英文版《传奇》迈克学摇滚

    向大家推荐一首好听的歌,可以听听试试看 [url]http://www.tudou.com/programs/view/sxJ8uTsEp8A/[/url] 没有MV,只有音乐 Fairy Tale/ ...

最新文章

  1. RedHat/CentOS 7通过nmcli命令管理网络教程
  2. java 协程框架_GitHub - yaozhang0105/dactor: Dactor是基于Java的轻量级同步异步统一处理框架,基于协程思想构建...
  3. Java Review - 并发编程_ CountDownLatch原理源码剖析
  4. android ramdisk
  5. 数据科学入门与实战:Seaborn001
  6. MyEclipse优化,解决MyEclipse运行慢、卡顿问题
  7. 【毕业论文写作技巧】毕业设计(论文)写作框架
  8. linux信任公钥的配置
  9. 身为管理者 会讲的六十八个故事
  10. python解决八数码问题_A*算法实践——八数码问题
  11. 教育培训机构如何利用小程序招生?
  12. 鞍钢不愿意上涨的原因分析
  13. 立创开源丨无刷电机驱动FOC驱动板
  14. Padavan挂载SMB共享及编译ffmpeg
  15. 工具类产品适合在微信公众号上运营吗?
  16. win8配置_【装机帮扶站】第382期:甜点级真的甜!4000价位GTX1660配置推荐!
  17. 数组的 find() 和 findIndex() 方法
  18. 数据结构(C)必会知识点+易错点:数组和广义表(n维数组地址计算公式,特殊矩阵对称矩阵的存储,广义表的表示方法)
  19. Redis核心技术与实战-学习笔记(二十九):Redis并发控制
  20. java断路器原理_spring cloud 入门系列四:使用Hystrix 实现断路器进行服务容错保护...

热门文章

  1. java计算机毕业设计计算机类专业考研交流学习平台MyBatis+系统+LW文档+源码+调试部署
  2. java后端项目整体代码结构
  3. Android 8.0 系统中添加护眼模式
  4. Android Context完全解析,你所不知道的Context的各种细节
  5. Python 使用office365邮箱自动发送邮件
  6. 熬夜整理了70个Python经典实用练手项目(附源码)
  7. 什么是知识库以及企业为何需要知识库
  8. 广东省梅州市谷歌卫星地图下载
  9. 期货反向跟单--脚踏两只船与时间管理
  10. 伟大的教育家:美国数学免费教学大神