题目大意:要你将n中的数排序,每个数必须与前面差值大于1。
没有思路,最后还是看的别人代码。看来最近思维真的不行了。
很简单的题目,只需要将奇数一起输出来,偶数再一起输出来就是答案了。
不过有几个情况需要特判。
1,2,3,4.都需要特判。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int a[5500];
bool vis[5500];
int main()
{
int n;
while(~scanf("%d",&n))
{
if(n<3)
{
printf("1\n1\n");
}
else
if(n==3)
printf("2\n1 3\n");
else
if(n==4)
printf("4\n3 1 4 2\n");
else{
printf("%d\n",n);
printf("%d",n);
for(int i=n-2;i>=1;i-=2)
printf(" %d",i);
for(int i=n-1;i>=1;i-=2)
printf(" %d",i);
puts("");
}
}
}