Cod sursa(job #129222)

Utilizator marinMari n marin Data 28 ianuarie 2008 19:43:25
Problema Multimi2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.47 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,"\n");
    fprintf(g,"%ld\n",n/2+1);
//    fprintf(g,"\n");
    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) {
    fprintf(g,"%ld\n%ld\n",0l,n/2);
    for (i=1;i<=n/2;i++)
      fprintf(g,"%ld ",2*i);
    fprintf(g,"\n");
    fprintf(g,"%ld\n",n/2);
    for (i=1;i<=n/2;i++)
      fprintf(g,"%ld ",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;
}