Codeforces785C (math,binary search)

来源:互联网 发布:股票数据猫网 编辑:程序博客网 时间:2024/06/05 18:11

数学问题:

  • 注意中间过程mid*mid的溢出,所以二分搜索的上顶需要设置为2000000000
  • 注意先存入谷物,还是鸟先吃谷物
  • 注意仓库起始状态
#include <cstdio>int main(){    long long N,M;    scanf("%I64d%I64d",&N,&M);    if(N<=M){        printf("%I64d\n",N);    }else    {        long long r = 2000000000;        long long l = 0;        while(r-l>1)        {            long long mid = (r + l)/2;            if(mid*(mid + 1)/2 >= N - M) r = mid;            else l = mid;        }o        printf("%I64d\n",r+M);    }    return 0;}
0 0