Cod sursa(job #299778)

Utilizator EstiarteManuel Esanu Estiarte Data 6 aprilie 2009 23:24:09
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include<stdio.h>
long int n,i;
FILE *in=fopen("multimi2.in","rt");
FILE *out=fopen("multimi2.out","wt");
int main()
{
 fscanf(in,"%ld",&n);
 if(n==2) fprintf(out,"1\n1\n1\n1\n2");
 else
	if(n==3) fprintf(out,"0\n2\n1 2\n1\n3");
	else
	 if(n==4) fprintf(out,"0\n2\n2 3\n2\n1 4");
	 else
		if(n%4==0)
		{
		 fprintf(out,"0\n%ld\n",n/2);
		 for(i=1;i<=n;i=i+4)
			fprintf(out,"%ld %ld ",i,i+3);
		 fprintf(out,"\n%ld\n",n/2);
			for(i=2;i<=n;i=i+4)
			fprintf(out,"%ld %ld ",i,i+1);

		}
		else
		if(n%4==1)
		{
			fprintf(out,"1\n%ld\n1 ",n/2+1);
			for(i=2;i<=n;i=i+4)
			 fprintf(out,"%ld %ld ",i,i+3);
			fprintf(out,"\n");
			fprintf(out,"%ld\n",n/2);
			for(i=3;i<=n;i=i+4)
			 fprintf(out,"%ld %ld ",i,i+1);
		}
		else
		if(n%4==2)
		{
			fprintf(out,"1\n%ld\n1 ",n/2);
			for(i=3;i<=n;i=i+4)
			 fprintf(out,"%ld %ld ",i,i+3);
			fprintf(out,"\n");
			fprintf(out,"%ld\n2 ",n/2);
			for(i=4;i<=n;i=i+4)
			 fprintf(out,"%ld %ld ",i,i+1);
		}
		if(n%4==3)
		{
		 fprintf(out,"0\n%ld\n1 2 ",n/2-1+2);
			for(i=4;i<=n;i=i+4)
			 fprintf(out,"%ld %ld ",i,i+3);
			fprintf(out,"\n");
			fprintf(out,"%ld\n3 ",n/2-1+1);
			for(i=5;i<=n;i=i+4)
			 fprintf(out,"%ld %ld ",i,i+1);
		}
 return 0;
}