Cod sursa(job #485324)

Utilizator Teodor94Teodor Plop Teodor94 Data 17 septembrie 2010 23:30:36
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include<cstdio>

int n;

void rez()
{
	scanf("%d",&n);
	if (n%4==0)
	{
		printf("0\n%d\n",n/2);
		for (int i=1;i<=n/2;i+=2)
			printf("%d %d ",i,n-i+1);
		printf("\n%d\n",n/2);
		for (int i=2;i<=n/2;i+=2)
			printf("%d %d ",i,n-i+1);
		printf("\n");
		return;
	}
	if (n%2==0)
	{
		printf("1\n%d\n",n/2);
		for (int i=1;i<n/2;i+=2)
			printf("%d %d ",i,n-i+1);
		printf("%d\n%d\n",n/2,n/2);
		for (int i=2;i<=n/2;i+=2)
			printf("%d %d ",i,n-i+1);
		printf("%d\n",n/2+1);
		return;
	}
	if ((n-3)%4==0)
	{
		printf("0\n%d\n1 2 ",(n-3)/2+2);
		for (int i=4;i<=(n-3)/2+3;i+=2)
			printf("%d %d ",i,n-(i-4));
		printf("\n%d\n3 ",(n-3)/2+1);
		for (int i=5;i<=(n-3)/2+3;i+=2)
			printf("%d %d ",i,n-(i-4));
		printf("\n");
		return;
	}
	if ((n-3)%2==0)
	{
		printf("1\n%d\n1 2 ",(n-3)/2+2);
		for (int i=4;i<(n-3)/2+3;i+=2)
			printf("%d %d ",i,n-(i-4));
		printf("%d\n%d\n3 ",(n-3)/2+3,(n-3)/2+1);
		for (int i=5;i<(n-3)/2+3;i+=2)
			printf("%d %d ",i,n-(i-4));
		printf("%d\n",(n-3)/2+4);
		return;
	}
}

int main()
{
	freopen("multimi2.in","r",stdin);
	freopen("multimi2.out","w",stdout);
	rez();
	return 0;
}