问题描述:
给你一个整数n,让你对(1---n)这n个数排列使得前后两个数作差的绝对值不等于1;
题目链接:CodeForces NO.534A
思路:
绝壁智商压制,Y的我竟然用了next.permutation(),毫无疑问TLE,,,其实很简单,看代码。
代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<queue>
#include<stack>
#include<cstring>
#include<string>
#include<vector>
#include<set>
using namespace std;
#define X first
#define Y second
#define PI 3.1415926
const int MAX = 2010;
const int INF = 0x3f3f3f3f;
int main(){
int n;
cin >> n;
int flag = 0;
if(n == 2 || n == 1){
printf("1\n");
printf("1\n");
return 0;
}
if(n == 3){
printf("2\n");
printf("1 3\n");
return 0;
}
printf("%d\n", n);
for(int i = 2; i <= n; i+=2){
printf("%d ",i);
}
for(int i = 1; i <= n; i+=2){
printf("%d ",i);
}
printf("\n");
return 0;
}