Cod sursa(job #177119)

Utilizator the.phoenixMihaescu Tiberiu Ioan the.phoenix Data 12 aprilie 2008 12:44:37
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.49 kb
#include<fstream.h>
#include<stdio.h>
int main()
{FILE *f,*g;
f=fopen("multimi2.in","r");
g=fopen("multimi2.out","w");
long z,x,y,n,i;
fscanf(f,"%ld",&n);
		 if(n%4==0)
					{x=0;
					 y=n/2;
					 fprintf(g,"%ld\n%ld\n",x,y);
							for(i=1;i<=n/2;i+=2)
								{z=n-i+1;
								 fprintf(g,"%ld %ld ",i,z);
								 }
				 y=n/2;
				 fprintf(g, "\n%ld\n",y);
					for(i=2;i<=n/2;i+=2)
							{z=n-i+1;
							 fprintf(g, "%ld %ld ",i,z);
							 
							}
					fprintf(g,"\n");

				 }
		else
		if(n%4==1)
				 {fprintf(g, "1\n%ld\n1 ",n/2+1);

					for(i=2;i<=n/2;i+=2)
				{fprintf(g, "%ld %ld ", i,n-i+2);
				}
		fprintf(g, "\n%ld\n",n/2);
		for(i=3;i<=n/2+1;i+=2)
				if(i==3 && n==5)
					fprintf(g, "%ld %ld",i,i+1);
					else
				 fprintf(g, "%ld %ld ",i,n-i+2);
				 }
	if(n%4==2)
				 {fprintf(g, "1\n%ld\n",n/2);
					for(i=1;i<=n/2-1;i+=2)
							fprintf(g, "%ld %ld ",i,n-i+1);
				 fprintf(g, "%ld\n%ld\n",n/2,n/2);
				 for(i=2;i<=n/2+1;i+=2)
							if(i==n/2+1)
										fprintf(g, "%ld\n",i);
										else
											fprintf(g,"%ld %ld ",i,n-i+1);

				 }
		if(n%4==3)
				 {fprintf(g, "0\n%ld\n",n/2+1);

					for(i=1;i<=n/2-1;i+=2)
							fprintf(g, "%ld %ld ",i,n-i);

					fprintf(g, "%ld %ld\n%ld\n",n/2,n/2+1,n/2);
					for(i=2;i<=n/2;i+=2)
							if(i==2 && n==3)
										 fprintf(g, "%ld ",n-i+1);

							else
							fprintf(g, "%ld %ld ",i,n-i);
					fprintf(g, "%ld",n);

					}
fclose(f);
fclose(g);

		return 0;
		}