#include "includes.cpp"
namespacesub{template<typenameT>constexprtypenamestd::enable_if<std::is_integral<T>::value,T>::typeinf_sub(){returnstd::numeric_limits<T>::max()/2-1000;}template<typenameT>constexprtypenamestd::enable_if<std::is_floating_point<T>::value,T>::typeinf_sub(){returnstd::min(std::numeric_limits<T>::max()/2-1000,T(1e50));}}// namespace subtemplate<typenameT>constexprTinf(){static_assert(std::is_arithmetic<T>::value,"T must be arithmetic value");returnsub::inf_sub<T>();}template<typenameT>constexprTzero(){static_assert(std::is_arithmetic<T>::value,"T must be arithmetic value");returnT(0);}constlongdoublepi=acos(-1.0);