题目
代码
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int n;ll C(int a, int b)
{ll retv = 1;for(int i = a, j = 1; j <= b; i--, j++){retv = retv * i / j;if(retv > n)return retv;}return retv;
}
bool check(int k)
{int l = 2 * k, r = max(l, n);while(l < r){int mid = l + r >> 1;if(C(mid, k) >= n) r = mid;else l = mid+1;}if(C(l, k) != n) return false;cout << (ll)l * (l + 1) / 2 + k + 1;return true;
}
int main()
{cin >> n;for(int k = 16; ~k; k--)if(check(k)) break;return 0;
}