// #pragma GCC target("avx") // #pragma GCC optimize("O3,inline,omit-frame-pointer,no-asynchronous-unwind-tables,fast-math") // #pragma GCC optimize("unroll-loops") #define _USE_MATH_DEFINES #ifndef _DEBUG #define NDEBUG #endif #if defined(ONLINE_JUDGE) || defined(_DEBUG) #include using namespace atcoder; #endif #include #include using namespace std; using ll=long long; using ld=long double; using ull=unsigned long long; using vb=vector; using vvb=vector; using vd=vector; using vvd=vector; using vi=vector; using vvi=vector; using vl=vector; using vvl=vector; using pll=pair; using tll=tuple; using tlll=tuple; using vs=vector; template using IndexedSet=__gnu_pbds::tree,__gnu_pbds::rb_tree_tag,__gnu_pbds::tree_order_statistics_node_update>; template using HashSet=__gnu_pbds::gp_hash_table; template using IndexedMap=__gnu_pbds::tree,__gnu_pbds::rb_tree_tag,__gnu_pbds::tree_order_statistics_node_update>; template using HashMap=__gnu_pbds::gp_hash_table; #define all(a) a.begin(),a.end() #define rall(a) a.rbegin(),a.rend() #define loop(q) __loop(q, __LINE__) #define __loop(q,l) __loop2(q,l) #define __loop2(q,l) rep(_lp ## l,q) #define rep(i,n) range(i,0,n) #define rrep(i,n) rrange(i,0,n) #define range(i,a,n) for(ll i=((ll)a);i<((ll)n);++i) #define rrange(i,a,n) for(ll i=((ll)n-1);i>=((ll)a);--i) #define repsq(i,n) for(ll i=0;i*i<=n;++i) #define each(v,a) for(auto v:a) #define eachref(v,a) for(auto&v:a) #define fcout(a) cout<constexpr bool chmax(T&a,T b){return aconstexpr bool chmin(T&a,T b){return a>b?a=b,1:0;} templateS sum(vector&a){return accumulate(all(a),S());} templateS max(vector&a){return *max_element(all(a));} templateS min(vector&a){return *min_element(all(a));} //output templatestruct hasItr{ templatestatic constexpr true_type check(class U::iterator*); templatestatic constexpr false_type check(...); static constexpr bool v=decltype(check(nullptr))::value; }; template<>struct hasItr{static constexpr bool v=false;}; templatevoid puta(T&t,false_type,ostream&os,[[maybe_unused]]char el){os<void puta(T&t,true_type,ostream&os,char el){ constexpr bool h=hasItr::v; bool F=true,I; for(auto&i:t){ if(!F)os<<' '; puta(i,bool_constant(),os,el); F=I=h; } if(!I)os<void puta(const T&t, ostream&os=cout, char el='\n'){ puta(t,bool_constant::v>(),os,el); if(!hasItr::v)os<void puta(const H&h,const T&...t){cout<void puta(tupleconst&t, ostream&os){ if constexpr(i==sizeof...(T)-1)puta(get(t),os); else{os<(t)<<' ';puta(t,os);} } templatevoid puta(tupleconst&t, ostream&os=cout){puta<0>(t,os);} templateconstexpr ostream&operator<<(ostream&os,pairp){ os<<'['<::v)puta(p.second,bool_constant(),os,']'); else os<constexpr ostream&operator<<(ostream&os,tuplet){puta(t,os); return os;} void YN(bool b){puta(b?"YES":"NO");} void Yn(bool b){puta(b?"Yes":"No");} #ifdef _DEBUG templatevoid dump_f(const T&t){puta(t,cerr);} templatevoid dump_f(const H&h,const T&...t){cerr<void dump_f(tupleconst&t){puta(t,cerr);} #define dump(...)cerr<<" "<auto&operator>>(istream&is,vector&t){for(S&a:t)cin>>a;return is;} templatevoid geta_(S&...s){((cin>>s),...);} #define geta(t,...) t __VA_ARGS__;geta_(__VA_ARGS__) templateauto vec(T x,int arg,Args...args){if constexpr(sizeof...(args)==0)return vector(arg,x);else return vector(arg,vec(x,args...));} #define getv(a,...) auto a=vec(__VA_ARGS__);cin>>a // ライブラリ貼るスペース void Main(){ //-8.245 + 6.807H + 7.073FFC geta(ll,n); vl a={7,5,2,0,1,0,7,4,2,3}; puta(a[n-1]); }