/* Check cf5-opt.vim defs. VIM: let g:lcppflags="-std=c++11 -O2 -pthread" VIM: let g:wcppflags="/O2 /EHsc /DWIN32" VIM-: let g:cppflags=g:Iboost.g:Itbb VIM-: let g:ldflags=g:Lboost.g:Ltbb.g:tbbmalloc.g:tbbmproxy VIM-: let g:ldlibpath=g:Bboost.g:Btbb VIM: let g:argv="" */ #include #include #include bool find_winner( unsigned n ) { int z = 0; // amount of zeros int m = 0; // amount of moves while ( n ) { unsigned b = n & 0x1; // get the last bit. if ( b ) m += z; else z++; n >>= 1; } return m % 2; } int main ( void ) {try{ // // Read length. // long long n; std::cin >> n; // // Read seq. // typedef std::vector arr_type; arr_type arr(n); for ( unsigned& i: arr ) std::cin >> i; // // Solve it. // for ( unsigned i: arr ) { if ( find_winner( i ) ) std::cout << "First Player" << std::endl; else std::cout << "Second Player" << std::endl; } return 0; } catch ( const std::exception& e ) { std::cerr << std::endl << "std::exception(\"" << e.what() << "\")." << std::endl; return 2; } catch ( ... ) { std::cerr << std::endl << "unknown exception." << std::endl; return 1; }}