unsigned factorial_times_2(unsigned n) {
unsigned result;
if (n<2u) result=1u;
result = n * (factorial_times_2(n-1u)/2u);
return result * 2u;
}
int main(void) {
return factorial_times_2(~0u)/2u;
}
dW5zaWduZWQgZmFjdG9yaWFsX3RpbWVzXzIodW5zaWduZWQgbikgewoJdW5zaWduZWQgcmVzdWx0OwoKCWlmIChuPDJ1KSByZXN1bHQ9MXU7CglyZXN1bHQgPSBuICogKGZhY3RvcmlhbF90aW1lc18yKG4tMXUpLzJ1KTsKCglyZXR1cm4gcmVzdWx0ICogMnU7Cn0KaW50IG1haW4odm9pZCkgewoJcmV0dXJuIGZhY3RvcmlhbF90aW1lc18yKH4wdSkvMnU7Cn0K