fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. long long n,m,t;
  5.  
  6. int main() {
  7.  
  8. cin>>t;
  9. while(t--) {
  10. scanf("%lld %lld",&n,&m);
  11.  
  12. if(n==1) {
  13. if(m==0)
  14. puts("0");
  15. else if(m==1)
  16. puts("1");
  17. else
  18. puts("-1");
  19.  
  20. continue;
  21. }
  22.  
  23. if(m>=n-1 && m<= n*(n-1)/2+n) {
  24.  
  25. if(m-(n-1)>n) {
  26.  
  27. if(m==n*2)
  28. puts("3");
  29. else{
  30.  
  31. int ans;
  32. long long dif=m-n*2;
  33. long long val=n/2;
  34.  
  35. if(n%2==0){
  36. ans=3+ceil((double)dif/val);
  37. }else{
  38.  
  39. long long frac1=dif/(2*val+1);
  40. long long frac2=ceil(((double)m-(n*2+frac1*(2*val+1)))/val);
  41. ans=frac1*2+3+frac2;
  42. }
  43.  
  44. printf("%d\n",ans);
  45.  
  46. }
  47.  
  48.  
  49. } else {
  50.  
  51. if(m-(n-1)==0){
  52. if(n==2)
  53. puts("1");
  54. else
  55. puts("2");
  56. }
  57. else if(m-(n-1)-2>0)
  58. puts("3");
  59. else
  60. puts("2");
  61.  
  62. }
  63.  
  64.  
  65. } else {
  66. puts("-1");
  67. }
  68.  
  69.  
  70. }
  71.  
  72.  
  73. return 0;
  74. }
  75. /*
  76. 22 242
  77. ans=22
  78. my output=21
  79.  
  80. */
  81.  
Success #stdin #stdout 0s 4400KB
stdin
Standard input is empty
stdout
Standard output is empty