Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2017
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. long long n,m,k,mm;
  6.  
  7. long long sum (long long n) {
  8. return n*(n+1)/2;
  9. }
  10.  
  11. long long howmany(int p){
  12. long long left = k-1;
  13. long long right = n-k;
  14.  
  15. long long res = p;
  16. if(left >= p-1) res += sum(p-1);
  17. else res += sum(p-1) - sum(p-1-left);
  18.  
  19. if(right >= p-1) res += sum(p-1);
  20. else res += sum(p-1) - sum(p-1-right);
  21.  
  22. return res;
  23. }
  24.  
  25. long long Can(long long p){
  26. long long rr = howmany(p);
  27.  
  28. if(rr <= mm) return 1;
  29. else return 0;
  30. }
  31.  
  32. long long bins(){
  33. long long m,val,l,r;
  34.  
  35. l = 0; r = mm;
  36. while(l<r){
  37. m = (l+r+1)/2;
  38. if(Can(m)) l = m;
  39. else r = m-1;
  40. }
  41. if(Can(l)) return l;
  42. else return -1;
  43. }
  44.  
  45.  
  46. int main() {
  47. cin >> n >> mm >> k;
  48. mm-=n;
  49.  
  50.  
  51. long long res = bins();
  52. cout<<res+1<<endl;
  53.  
  54. return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement