codeforces 640 div4 G

我覺得E比他還簡單,爲什麼過的人卻沒有G多……

其實一開始想的+2選數是對的,再想一下,處理一些情況就可以了,要是以後太小的數/特殊的數感覺找不出規律,可以找一些中等大小和正常的數找規律,然後特判就好了。

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;
int t,n;
int main()
{
	cin>>t;
	while(t--)
	{
		scanf("%d",&n);
		if(n<=3)
		{
			printf("-1\n");
			continue;
		}
		else if(n==4)
		{
			printf("3 1 4 2\n");
		}
		else
		{
			/*for(int i=1;i<=n;i+=2)
			{
				printf("%d ",i);
			}*/
			if(n%2==0)
			{
				for(int i=1;i<=n;i+=2)
				{
					printf("%d ",i);
				}
				printf("%d ",n-4);
				for(int i=n;i>=1;i-=2)
				{
					if(i!=n-4)
					
					{
						printf("%d ",i);
					}
				}
			}
			else
			{
				for(int i=1;i<=n;i+=2)
				{
					printf("%d ",i);
				}
				printf("%d ",n-3);
				for(int i=n-1;i>=1;i-=2)
				{
					if(i!=n-3)
					printf("%d ",i);
				}
			}
			printf("\n");
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章