fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4.  
  5. int f(int k, int m) {
  6. if (m <= k) {
  7. // 1 + 2 + ... + m
  8. return m * (m + 1) / 2;
  9. }
  10. int A = k * (k + 1) / 2;
  11.  
  12. int r = m - k;
  13. int B = r * (2 * k - r + 1) / 2;
  14.  
  15. return A + B;
  16. }
  17.  
  18. void solve() {
  19. int k, x;
  20. cin >> k >> x;
  21.  
  22. int l = 1, r = 2 * k, ans = r;
  23.  
  24. while (l <= r) {
  25. int m = (l + r) / 2;
  26.  
  27. if (f(k, m) >= x) {
  28. ans = m;
  29. r = m - 1;
  30. } else {
  31. l = m + 1;
  32. }
  33. }
  34.  
  35. cout << ans << "\n";
  36. }
  37.  
  38. int32_t main() {
  39. ios::sync_with_stdio(false);
  40. cin.tie(nullptr);
  41.  
  42. int t;
  43. cin >> t;
  44. while (t--) solve();
  45. }
  46.  
Success #stdin #stdout 0.01s 5300KB
stdin
7
4 6
4 7
1 2
3 7
2 5
100 1
1000000000 923456789987654321
stdout
3
4
2
4
3
1
1608737401