您的位置:首页 > 大数据 > 人工智能

[2017-3-17]BNUZ套题比赛div2 C - Anton and Fairy Tale

2017-03-27 21:21 337 查看

CodeForces - 785C

http://codeforces.com/problemset/problem/785/C

题意:

有一个谷仓,谷仓内最多放n份谷子,一开始谷仓是满的,每天向里面放入m份的谷子(如果满了就无法继续放入更多)。然后从第一天开始,会有麻雀吃谷仓里的谷子,第一天吃1份,第二天吃2份,以此类推,第x天就是吃x份,问在哪一天谷仓会被吃光。

思路:

当n <= m时,仓库每天都是满的,所以直接输出n就可以了,当n > m时,二分求出天数。

代码:

#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define INF 2e9
int main(){
LL n,m,left,right,ans,day;
while(~scanf("%lld %lld",&n,&m)){
if(m >= n){
printf("%lld\n",n);
continue;
}
left = 1;
right = ans = INF;
while(left <= right){
day = (left + right) / 2;
if(n - m > day * (day + 1) / 2){
left = day + 1;
}else{
right = day - 1;
ans = min(ans,day);
}
}
printf("%lld\n",ans + m);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: