/* 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 int main ( void ) {try{ // // Read length. // long long n; std::cin >> n; if ( n < 4 ) throw std::runtime_error( "Input length is not enough." ); // // Read seq. // typedef std::vector arr_type; arr_type arr(n); for ( int& i: arr ) std::cin >> i; // // Solve it. // long long s = 0; for ( long long i: arr ) s += i; long long d = arr[1]-arr[0]; if ( d != arr[2]-arr[1] && d != arr[3]-arr[2]) d = arr[2]-arr[1]; long long idx = (n+1)*n/2-(s-n*arr[0])/d; // // // long long missing = arr[0]+idx*d; std::cout << missing; 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; }}