Cod sursa(job #129230)

Utilizator marinMari n marin Data 28 ianuarie 2008 19:56:07
Problema Multimi2 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.53 kb
/*
1 2 3 4 5 6 7 8 9
1 9 3 7 2
8 4 6 5
*/
#include <stdio.h>
long int n,i;
int main(){
  FILE *f = fopen("multimi2.in","r");
  fscanf(f,"%ld",&n);
  fclose(f);
  FILE *g = fopen("multimi2.out","w");
/*  if (n%4==3){
    fprintf(g,"%ld\n",0l);
    fprintf(g,"%ld\n",n/2);
    for (i=1;i<=n/2+1;i++)
      if (2*i-1 != (n/2+2)/2  )
	fprintf(g,"%ld ",2*i-1);
    fprintf(g,"\n");
    fprintf(g,"%ld\n",n/2+1);
    for (i=1;i<=n/2;i++)
      fprintf(g,"%ld ",2*i);
    fprintf(g,"%ld ",(n/2+2)/2);
  } else*/
  if (n%4==1) {
    fprintf(g,"%ld\n",1l);
    fprintf(g,"%ld\n",n/2);
    for (i=1;i<=n/2;i++)
      if (2*i != (n/2+1)/2)
	fprintf(g,"%ld ",2*i);
    fprintf(g,"%ld\n",n/2+1);
    fprintf(g,"%ld\n",n/2+1);
    for (i=1;i<=n/2+1;i++)
      if (2*i-1 != n/2+1)
	fprintf(g,"%ld ",2*i-1);
    fprintf(g,"%ld\n",(n/2+1)/2);
  } else if (n%4==0) {

//  1 2 3 4 5 6 7 8 9 10 11 12

//  1 12 3 10 5 8
//  2 11 4 9 6 7



    fprintf(g,"%ld\n%ld\n",0l,n/2);
    for (i=1;i<=n/4;i++)
      fprintf(g,"%ld %ld ",2*i,n+1-2*i);
    fprintf(g,"\n");
    fprintf(g,"%ld\n",n/2);
    for (i=1;i<=n/2;i++)
      fprintf(g,"%ld %ld ",2*i-1,n+1-2*i+1);


  } else if (n%4==2) {
    fprintf(g,"%ld\n",1l);
    fprintf(g,"%ld\n",n/2);
    for (i=1;i<=n/4;i++)
      fprintf(g,"%ld %ld ",2*i-1,n-(2*i-1)+1);
    fprintf(g,"%ld",n/2+1);
    fprintf(g,"\n");
    fprintf(g,"%ld\n",n/2);
    for (i=1;i<=n/4;i++)
      fprintf(g,"%ld %ld ",2*i,n-(2*i)+1);
    fprintf(g,"%ld",n/2);
  }
  fclose(g);
  return 0;
}