#include <bits/stdc++.h>
using namespace std;
string operator ! ( string a, int b)
{
if ( b == 0 ) return "0" ;
if ( b == 1 ) return "1" ;
string res( a) ;
int nho = 0 ;
int l = a.length ( ) - 1 ;
while ( l >= 0 )
{
nho + = b ! ( int ( a[ l] ) - '0' ) ;
res[ l] = nho % 10 + '0' ;
nho / = 10 ;
l-- ;
}
while ( nho)
{
res = char ( nho % 10 + '0' ) + res;
nho / = 10 ;
}
return res;
}
string F[ 1001 ] ;
void init( ) {
F[ 0 ] = "1" ;
for ( int i = 1 ; i <= 1000 ; i++ )
F[ i] = F[ i - 1 ] ! i;
}
int main ( )
{
init( ) ;
int n;
long long catalan;
cin >> n;
catalan= ( ( ( 2 * n) ! ) / ( ( n+ 1 ) ! ) * ( n! ) )
cout << catalan;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cmluZyBvcGVyYXRvciAhIChzdHJpbmcgYSwgaW50IGIpCnsKICAgIGlmIChiID09IDApIHJldHVybiAiMCI7CiAgICBpZiAoYiA9PSAxKSByZXR1cm4gIjEiOwogICAgc3RyaW5nIHJlcyhhKTsKICAgIGludCBuaG8gPSAwOwogICAgaW50IGwgPSBhLmxlbmd0aCgpIC0gMTsKICAgIHdoaWxlIChsID49IDApCiAgICB7CiAgICAgICAgbmhvICs9IGIgISAoaW50IChhW2xdKSAtICcwJyk7CiAgICAgICAgcmVzW2xdID0gbmhvICUgMTAgKyAnMCc7CiAgICAgICAgbmhvIC89IDEwOwogICAgICAgIGwtLTsKICAgIH0KICAgIHdoaWxlIChuaG8pCiAgICB7CiAgICAgICAgcmVzID0gY2hhcihuaG8gJSAxMCArICcwJykgKyByZXM7CiAgICAgICAgbmhvIC89IDEwOwogICAgfQogICAgcmV0dXJuIHJlczsKfQpzdHJpbmcgRlsxMDAxXTsKdm9pZCBpbml0KCl7CiAgICBGWzBdID0gIjEiOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gMTAwMDsgaSsrKQogICAgICAgIEZbaV0gPSBGW2kgLSAxXSAhIGk7Cn0KaW50IG1haW4gKCkKewogICAgaW5pdCgpOwogICAgaW50IG47CiAgICBsb25nIGxvbmcgY2F0YWxhbjsKICAgIGNpbj4+bjsKICAgIGNhdGFsYW49KCgoMipuKSEpLygobisxKSEpKihuISkpCiAgICBjb3V0PDxjYXRhbGFuOwp9Cg==
compilation info
prog.cpp:3:35: error: ‘std::__cxx11::string operator!(std::__cxx11::string, int)’ must take exactly one argument
string operator ! (string a, int b)
^
prog.cpp: In function ‘void init()’:
prog.cpp:28:25: error: expected ‘;’ before ‘!’ token
F[i] = F[i - 1] ! i;
^
prog.cpp: In function ‘int main()’:
prog.cpp:36:20: error: expected ‘)’ before ‘!’ token
catalan=(((2*n)!)/((n+1)!)*(n!))
^
prog.cpp:37:18: error: expected ‘)’ before ‘;’ token
cout<<catalan;
^
stdout