公式

B - Setsubun 解説 by physics0523

別解

必要な年数で二分探索することで、 \(N,K\) がより大きな場合でもこの問題を解くことが出来ます。

実装例 (C++):

#include<bits/stdc++.h>

using namespace std;
using ll=long long;

int main(){
  ll n,k;
  cin >> n >> k;
  ll lef=0,rig=1e9;
  while(lef<=rig){
    ll mid=(lef+rig)/2;
    ll cur=((n+(n+mid))*(mid+1))/2;
    if(cur<k){lef=mid+1;}
    else{rig=mid-1;}
  }
  cout << lef << "\n";
  return 0;
}

投稿日時:
最終更新: