#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; template istream& operator >> (istream& is, vector& vec){for(T& val: vec) is >> val; return is;} template istream& operator , (istream& is, T& val){ return is >> val;} template ostream& operator << (ostream& os, vector& vec){for(int i=0; i ostream& operator , (ostream& os, T& val){ return os << " " << val;} template ostream& operator >> (ostream& os, T& val){ return os << " " << val;} bool is_kadomatsu_sequence(vector x){ if(x.size() != 3) return false; if(x[0] < x[1] && x[1] > x[2] && x[2] != x[0]) return true; if(x[0] > x[1] && x[1] < x[2] && x[2] != x[0]) return true; return false; } #define MOD 1000000007 long long inv; // nCk mod p, O(1) // precomputation O(size) class combination_mod{ const long long mod; const long long size; vector fact; //n! vector fact_inv; // (n!)^-1 void make_fact(){ fact[0] = 1; for(long long i=1; i> n; if(n<3){ cout << 0 << endl; return 0; } combination_mod cmb(MOD, 3000); vector E(n+100, -1); E[0] = E[1] = 1; E[2] = 1; long long ans = 0; for(int i=2; i a(n); int cnt = 0; iota(a.begin(), a.end(), 0); do{ bool ok = true; deque dq; for(int i=0; i3) dq.pop_front(); if(dq.size() == 3){ if(is_kadomatsu_sequence({dq[0],dq[1],dq[2]})){ }else{ ok = false; } } } if(ok){ cnt++; } }while(next_permutation(a.begin(), a.end())); cout << cnt << endl; */ return 0; }