题目大意(能讲清楚题意也很重要QWQ)
有一个谷仓,一开始是满的(有n个稻谷),每天白天会给谷仓加入m个稻谷,晚上会被鸟吃掉一些(第k天吃掉k个稻谷),问在哪天谷仓会第一次空掉。
一开始就感觉是赤裸裸的数学题,
但还是乖乖去二分了QWQ,这一题二分也要分姿势,如果单纯的用天数来二分的话会爆long long ,二分出(天数-m)的值就可以了

#include <cstdio> #include <iostream> #include <algorithm> using namespace std; typedef long long int LONGLONG ; int main(int argc, char const *argv[]) { LONGLONG value, brought; cin>> value >> brought; if(brought>=value){ cout<<value<<endl; return 0; } LONGLONG ans; LONGLONG left = 1 , right = 0x7fffffff,mid; while(left<=right){ mid = left + (right - left)/2; if(mid*(mid +1)/2 + brought < value ) left = mid + 1; else right = mid - 1; } cout<< left + brought <<endl; return 0; }