nCr メモ化再帰(DP)バージョン

ll dp[300][300];

// long longを溢れない答えなら正しく返します
ll nCr(ll n, ll r){
  if(r==0 or r==n)return 1;
  if(dp[n][r]!=0)return dp[n][r];
  ll ret=nCr(n-1,r-1)+nCr(n-1,r);
  return dp[n][r]=ret;
}

int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);

    // input
    ll L;
    cin>>L;
    L -= 12;

    ll ans = nCr(L+11, 11);
    p(ans);
    
    return 0;
}