题意:给出 n , k n,k n,k,求 m i n ( 1 e 18 , C ( n , k ) ) min(1e18,C(n,k)) min(1e18,C(n,k))
#include<bits/stdc++.h> using namespace std; #define maxn 1010 typedef long long ll; ll n,k; ll cal(ll n,ll k){ k=min(k,n-k); __int128 res=1; for(ll i=1;i<=k;i++){ res*=(n-i+1); res/=i; if(res>1e18) return 1e18; } return res; } int main(){ while(~scanf("%lld%lld",&n,&k)){ printf("%lld\n",cal(n,k)); } return 0; }