//#define //_GLIBCXX_DEBUG #include #include #include #include using namespace std; using namespace atcoder; using ll = long long; using ull = unsigned long long; using vll=vector; using vvll=vector>; using Graph=vvll; using Edgegraph=vector>>; using vch=vector; using vvch=vector>; using P=pair; using vP=vector

; using tup=tuple; using vbl=vector; using vvbl=vector; using vs=vector; using vvs=vector; using vd=vector; using vvd=vector; using mint = atcoder::modint998244353; const int infint = 1073741823; const ll inf = 1LL << 60; template inline bool chmax(T& a,T b){if (a inline bool chmin(T& a,T b){if (a>b){a=b;return 1;}return 0;} #define rep(i,x,lim) for(ll i = (x);i < (ll)(lim);i++) #define rep2(j,x,lim) for(int j = (x);j < (int)(lim);j++) const ll big=(1e+9)+7; const ll big2=998244353; ll dx[8]={1,-1,0,0,1,1,-1,-1}; ll dy[8]={0,0,1,-1,1,-1,1,-1}; int modpow(ll x,ll n,ll m){ if(n==0) return 1%m; x=((x%m)+m)%m; if(n%2==0){ ll r=modpow(x,n/2,m); return r*r%m; } else{ ll r=modpow(x,n/2,m); return r*r%m*x%m; } } //pは素数でなければならない。 int revmod(ll x,ll p){return modpow(x,p-2,p);} //99 のRを高速に求める int modp(ll p,ll q){ ll gc=gcd(p,q); p/=gc;q/=gc; ll rev=revmod(p,big2); return (rev*q)%big2; } //nCrを求める modbig2 int nCr(ll n,ll r){ ll ans=1; rep(i,1,n+1) ans=(ans*i)%big2; rep(i,1,r+1) ans=(ans*modpow(i,big2-2,big2))%big2; rep(i,1,n-r+1) ans=(ans*modpow(i,big2-2,big2))%big2; return ans; } template size_t HashCombine(const size_t seed,const T &v){ return seed^(std::hash()(v)+0x9e3779b9+(seed<<6)+(seed>>2)); } /* pair用 */ template struct std::hash>{ size_t operator()(const std::pair &keyval) const noexcept { return HashCombine(std::hash()(keyval.first), keyval.second); } }; void recursive_comb(ll *indexes, int s, int rest, std::function f) { if (rest == 0) { f(indexes); } else { if (s < 0) return; recursive_comb(indexes, s - 1, rest, f); indexes[rest - 1] = s; recursive_comb(indexes, s - 1, rest - 1, f); } } // nCkの組み合わせに対して処理を実行する void foreach_comb(ll n, ll k, std::function f) { ll indexes[k]; recursive_comb(indexes, n - 1, k, f); } int main(){ ll N; cin >> N; vll A(N); rep(i,0,N/2){ A[i]=2*i+1; A[N-1-i]=2*i+2; } if(N%2==1) A[N/2]=N; if(N==2) cout << "No" << '\n'; else{ cout << "Yes" << '\n'; rep(i,0,N) cout << A[i] << " "; cout << '\n'; } }