Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- long long n,m,k,mm;
- long long sum (long long n) {
- return n*(n+1)/2;
- }
- long long howmany(int p){
- long long left = k-1;
- long long right = n-k;
- long long res = p;
- if(left >= p-1) res += sum(p-1);
- else res += sum(p-1) - sum(p-1-left);
- if(right >= p-1) res += sum(p-1);
- else res += sum(p-1) - sum(p-1-right);
- return res;
- }
- long long Can(long long p){
- long long rr = howmany(p);
- if(rr <= mm) return 1;
- else return 0;
- }
- long long bins(){
- long long m,val,l,r;
- l = 0; r = mm;
- while(l<r){
- m = (l+r+1)/2;
- if(Can(m)) l = m;
- else r = m-1;
- }
- if(Can(l)) return l;
- else return -1;
- }
- int main() {
- cin >> n >> mm >> k;
- mm-=n;
- long long res = bins();
- cout<<res+1<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement