#include <stdio.h>
#include <stdlib.h>
#include <math.h>
long long combination(int n, int k) {
long double acc = 0;
for (int i = 0; i < k; i++) {
acc += logl(n - i) - logl(k - i);
}
return (long long)round(expl(acc));
}
long long euler_15(int n) {
return combination(2 * n, n);
}
int main(void) {
printf("%lld\n", euler_15
(20)); return EXIT_SUCCESS;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPG1hdGguaD4KCmxvbmcgbG9uZyBjb21iaW5hdGlvbihpbnQgbiwgaW50IGspIHsKICBsb25nIGRvdWJsZSBhY2MgPSAwOwogIGZvciAoaW50IGkgPSAwOyBpIDwgazsgaSsrKSB7CiAgICBhY2MgKz0gbG9nbChuIC0gaSkgLSBsb2dsKGsgLSBpKTsKICB9CiAgcmV0dXJuIChsb25nIGxvbmcpcm91bmQoZXhwbChhY2MpKTsKfQoKbG9uZyBsb25nIGV1bGVyXzE1KGludCBuKSB7CiAgcmV0dXJuIGNvbWJpbmF0aW9uKDIgKiBuLCBuKTsKfQoKaW50IG1haW4odm9pZCkgewogIHByaW50ZigiJWxsZFxuIiwgZXVsZXJfMTUoMjApKTsKICByZXR1cm4gRVhJVF9TVUNDRVNTOwp9Cg==