Cod sursa(job #177185)

Utilizator mihaidutescuDutescu Mihai mihaidutescu Data 12 aprilie 2008 13:46:15
Problema Multimi2 Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.53 kb
#include<fstream.h>
#include<string.h>
#include<stdio.h>
#include<ctype.h>
int main()
{
FILE *f,*g;
f=fopen("multimi2.in","r");
g=fopen("multimi2.out","w");
long n,n2,ne1=0,ne2=0;
long x=3,z,i,y;
fscanf(f,"%ld",&n);
n2=n-2;
if(n>3)
{
 if(n%2!=0)
 {
  y=((x+(n-5))/2)%2;
  if(y==0)
   {
    z=x+(n-5)/2;
	  fprintf(g,"%d\n",0);
    fprintf(g,"%d\n",n/2);
    fprintf(g,"%ld ",n);
    for(i=1;i<=z/2-1;i++)
    fprintf(g,"%ld %ld ", i,n-i);
    fprintf(g,"\n");
    ne2=z-i-1;
    fprintf(g,"%ld\n",n/2+1);
    for(i=i;i<=z-1;i++)
     fprintf(g,"%ld %ld ", i,n-i);
   }
  else
   {
    z=x+(n2-5)/2;
    fprintf(g,"%d\n%d\n", 1,n/2);
    fprintf(g,"%ld ",n2);
    fprintf(g,"%ld ",n-1);
    for(i=1;i<=z/2-1;i++)
    fprintf(g,"%ld %ld",i,n2-i);
    fprintf(g,"\n%ld\n",n/2+1);
    for(i=i;i<=z-1;i++)
     fprintf(g,"%ld %ld ",i,n2-i);
    fprintf(g,"%ld\n",n);
   }
 }
 else
 {
  if(n%4==0)
  {
   fprintf(g,"%d\n%d\n",0,n/2);
   for(i=1;i<=n/4;i++)
    fprintf(g,"%ld %ld ",i,n-i+1);
   fprintf(g,"\n%ld\n",n/2);
   for(i=i;i<=n/2;i++)
    fprintf(g,"%ld %ld ",i,n-i+1);
  }
  else
	{
   fprintf(g,"%d\n%d\n",1,n/2);
   fprintf(g,"%ld ",n);
   for(i=1;i<=n2/4;i++)
    fprintf(g,"%ld %ld ",i,n2-i+1);
   fprintf(g,"\n%ld\n",n/2);
   fprintf(g,"%ld ",n-1);
   for(i=i;i<=n2/2;i++)
    fprintf(g,"%ld %ld ",i,n2-i+1);
  }
 }
}
if(n==3)
{
 fprintf(g,"%d\n%d\n",0,2);
 fprintf(g,"%d %d\n",1,2);
 fprintf(g,"%d\n%d",1,3);
}
if(n==2)
 fprintf(g,"%d\n%d\n%d\n%d\n%d",1,1,1,1,2);
return(0);
}