Cod sursa(job #495251)

Utilizator ChallengeMurtaza Alexandru Challenge Data 24 octombrie 2010 16:26:08
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.46 kb
#include <cstdio>

const char InFile[]="multimi2.in";
const char OutFile[]="multimi2.out";

FILE *f=fopen(InFile,"r");

int n,st,sf;

int main()
{
	fscanf(f,"%d",&n);
	fclose(f);

	f=fopen(OutFile,"w");
	if(n%2==0)
	{
		if((n/2)%2==0)
		{
			fprintf(f,"0\n%d\n",n/2);
			st=1;
			sf=n;
			while(st<sf)
			{
				fprintf(f,"%d %d ",st,sf);
				st+=2;
				sf-=2;
			}
			fprintf(f,"\n%d\n",n/2);
			st=2;
			sf=n-1;
			while(st<sf)
			{
				fprintf(f,"%d %d ",st,sf);
				st+=2;
				sf-=2;
			}
		}
		else
		{
			fprintf(f,"1\n%d\n",n/2);
			st=1;
			sf=n;
			while(sf-st>1)
			{
				fprintf(f,"%d %d ",st,sf);
				st+=2;
				sf-=2;
			}
			fprintf(f,"%d\n%d\n%d ",st,n/2,sf);
			st=2;
			sf=n-1;
			while(sf-st>1)
			{
				fprintf(f,"%d %d ",st,sf);
				st+=2;
				sf-=2;
			}
		}
	}
	else
	{
		if((n/2)%2==0)
		{
			fprintf(f,"1\n%d\n1 ",n/2+1);
			st=2;
			sf=n;
			while(st<sf)
			{
				fprintf(f,"%d %d ",st,sf);
				st+=2;
				sf-=2;
			}
			fprintf(f,"\n%d\n",n/2);
			st=3;
			sf=n-1;
			while(st<sf)
			{
				fprintf(f,"%d %d ",st,sf);
				st+=2;
				sf-=2;
			}
		}
		else
		{
			fprintf(f,"0\n%d\n1 ",n/2+1);
			st=2;
			sf=n;
			while(sf-st>1)
			{
				fprintf(f,"%d %d ",st,sf);
				st+=2;
				sf-=2;
			}
			fprintf(f,"%d\n%d\n%d ",st,n/2,sf);
			st=3;
			sf=n-1;
			while(sf-st>1)
			{
				fprintf(f,"%d %d ",st,sf);
				st+=2;
				sf-=2;
			}
		}
	}
	fclose(f);
	return 0;
}