Cod sursa(job #116942)

Utilizator barbu_alexxaBarbu Alexandra barbu_alexxa Data 19 decembrie 2007 21:11:58
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.64 kb
#include<stdio.h>
unsigned long n,k1,i,dif;

void citire()
{freopen("multimi2.in","r",stdin);
 scanf("%lu",&n);
 fclose(stdin);
}

void rest0()
{dif=0;
 printf("%lu\n", dif);
  k1=n/2;
 printf("%lu\n", k1);
  for(i=1;i<=n/4;i++)
   printf("%lu ", i);
  for(i=n/4;i>=1;i--)
   printf("%lu ", n-i+1);
 printf("\n");
 printf("%lu\n", n-k1);

 for(i=n/4+1;i<=n-n/4;i++)
   printf("%lu ", i);
fclose(stdout);
}

void rest1()
{dif=1;
 printf("%lu\n", dif);
  k1=n/2+1;
 printf("%lu\n", k1);
 i=1;
 printf("%lu ", i);

  for(i=2;i<=n/4+1;i++)
   printf("%lu ", i);
  for(i=n/4;i>=1;i--)
   printf("%lu ", n-i+1);

 printf("\n");
 printf("%lu\n", n-k1);

 for(i=n/4+2;i<=n-n/4;i++)
   printf("%lu ", i);
fclose(stdout);
}


void rest2()
{dif=1;
 printf("%lu\n", dif);
  k1=n/2;
 printf("%lu\n", k1);
 i=1;
  printf("%lu ", i);

  for(i=3;i<=n/4+2;i++)
   printf("%lu ", i);
  for(i=(n/4+1)*3;i<=n;i++)
   printf("%lu ", i);
 printf("\n");
 printf("%lu\n", n-k1);
 i=2;
 printf("%lu ", i);

 for(i=n/4+3;i<=n-n/4;i++)
   printf("%lu ", i);
fclose(stdout);
}

void rest3()
{dif=0;
 printf("%lu\n", dif);
  k1=n/2+1;
 printf("%lu\n", k1);
  i=1;
  printf("%lu ",i);
  i=2;
  printf("%lu ",i);

  for(i=4;i<=n/4+3;i++)
   printf("%lu ", i);
  for(i=(n/4+1)*3+1;i<=n;i++)
   printf("%lu ", i);
 printf("\n");
 printf("%lu\n", n-k1);
 i=3;
 printf("%lu ",i);

 for(i=n/4+4;i<=n-n/4;i++)
   printf("%lu ", i);
fclose(stdout);
}





int main()
{citire();
freopen("multimi2.out","w",stdout);
if(n%4==0)
 rest0();
if(n%4==1)
 rest1();
if(n%4==2)
 rest2();
if(n%4==3)
 rest3();
return 0;
}