rt,下面这份代码无法通过测试,但可以AC,请求加强
#include<bits/stdc++.h>
#define int long long
using namespace std;
int ans,n;
int yh(int k,int m){
int sum = 1;
for(int i = k,j = 1;j <= m;--i,++j){
sum = sum * i / j;
if(sum > n){
return sum;
}
}
return sum;
}
signed main(){
cin >> n;
if(n == 1){
cout << 1 << endl;
return 0;
}
for(int i = 20;i >= 0;--i){
int l = 2 * i,r = 114514191810;
while(l <= r){
int mid = (l + r) >> 1;
int value = yh(mid,i);
if(value < n){
l = mid + 1;
}
else if(value > n){
r = mid - 1;
}
else if(value == n){
ans = (1 + mid) * mid / 2 + i + 1;
r = mid - 1;
}
}
}
cout << ans << endl;
return 0;
}