CF2091C Combination Lock

· · 题解

题目传送门

思路

这题很明显要利用错位。

不难看出,当 n 是偶数时无解。

n 为奇数时就先输出不大于 n 的所有奇数,再输出不大于 n 的所有偶数即可。

AC Code:

#include <bits/stdc++.h>
using namespace std;
void solve()
{
    int n;
    cin >>n;
    if(n%2==0)
    {
        cout <<-1<<"\n";
        return ;
    }
    else
    {
        for(int i=1;i<=n;i+=2) cout <<i<<" ";
        for(int i=2;i<=n;i+=2) cout <<i<<" ";
        cout <<'\n';
    }
}
int main()
{
    int t;
    cin >>t;
    while(t--)
    {
        solve();
    }
    return 0;
}