zoukankan      html  css  js  c++  java
  • G. Special Permutation

    A permutation of length nn is an array p=[p1,p2,,pn]p=[p1,p2,…,pn], which contains every integer from 11 to nn (inclusive) and, moreover, each number appears exactly once. For example, p=[3,1,4,2,5]p=[3,1,4,2,5] is a permutation of length 55.

    For a given number nn (n2n≥2), find a permutation pp in which absolute difference (that is, the absolute value of difference) of any two neighboring (adjacent) elements is between 22 and 44, inclusive. Formally, find such permutation pp that 2|pipi+1|42≤|pi−pi+1|≤4 for each ii (1i<n1≤i<n).

    Print any such permutation for the given integer nn or determine that it does not exist.

    Input

    The first line contains an integer tt (1t1001≤t≤100) — the number of test cases in the input. Then tt test cases follow.

    Each test case is described by a single line containing an integer nn (2n10002≤n≤1000).

    Output

    Print tt lines. Print a permutation that meets the given requirements. If there are several such permutations, then print any of them. If no such permutation exists, print -1.

    Example
    input
    Copy
    6
    10
    2
    4
    6
    7
    13
    
    output
    Copy
    9 6 10 8 4 7 3 1 5 2 
    -1
    3 1 4 2 
    5 3 6 2 4 1 
    5 1 3 6 2 4 7 
    13 9 7 11 8 4 1 3 5 2 6 10 12 
    
    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <string>
    #include <set>
    #include <queue>
    #include <map>
    #include <sstream>
    #include <cstdio>
    #include <cstring>
    #include <numeric>
    #include <cmath>
    #include <iomanip>
    #include <deque>
    #include <bitset>
    //#include <unordered_set>
    //#include <unordered_map>
    //#include <bits/stdc++.h>
    //#include <xfunctional>
    #define ll              long long
    #define PII             pair<int, int>
    #define rep(i,a,b)      for(int  i=a;i<=b;i++)
    #define dec(i,a,b)      for(int  i=a;i>=b;i--)
    #define pb              push_back
    #define mk              make_pair
    using namespace std;
    int dir[4][2] = { { 0,1 } ,{ 0,-1 },{ 1,0 },{ -1,0 } };
    const long long INF = 0x7f7f7f7f7f7f7f7f;
    const int inf = 0x3f3f3f3f;
    const double pi = 3.14159265358979;
    const int mod = 998244353;
    const int N = 2e5+5;
    //if(x<0 || x>=r || y<0 || y>=c)
    
    inline ll read()
    {
        ll x = 0; bool f = true; char c = getchar();
        while (c < '0' || c > '9') { if (c == '-') f = false; c = getchar(); }
        while (c >= '0' && c <= '9') x = (x << 1) + (x << 3) + (c ^ 48), c = getchar();
        return f ? x : -x;
    }
    
    ll gcd(ll m, ll n)
    {
        return n == 0 ? m : gcd(n, m%n);
    }
    
    int main()
    {
        int T;
        cin >> T;
        while (T--)
        {
            int n;
            cin >> n;
            if (n < 4) {
                cout << -1 << endl;
                continue;
            }
            for (int i = n; i >= 1; --i) {
                if (i & 1) cout << i << " ";
            }
            cout << 4 << " " << 2 << " ";
            for (int i = 6; i <= n; i += 2) {
                cout << i << " ";
            }
            cout << endl;
        }
        return 0;
    }
  • 相关阅读:
    objective c 中基本类型的操作
    [转载]Server.MapPath和Request.MapPath()的用法
    [转载]mstsc远程报:这可能是由于CredSSP 加密Oracle修正的两种完美解决方法
    [转载]忘记token怎么加入k8s集群
    ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded; 的解决办法
    [转载]AutoMapper 9.0的改造
    [转载]k8s注册节点提示Docker SystemdCheck]: detected cgroupfs" as the Docker cgroup dr iver. The r ecommended dr fiver is" systemd"
    [转载]Linux的Vi命令详解
    [转载]查看虚拟机里的Centos7的IP
    [转载]centos关闭swap分区
  • 原文地址:https://www.cnblogs.com/dealer/p/12870005.html
Copyright © 2011-2022 走看看