Cod sursa(job #111965)

Utilizator Darth_NiculusIvan Nicolae Darth_Niculus Data 2 decembrie 2007 17:45:25
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.09 kb
/* Ivan Nicolae - Bucuresti */
/* Infoarena - Multimi2 */
#include <stdio.h>

#define _fin  "multimi2.in"
#define _fout "multimi2.out"
#define Next(x) (((x) < 4) ? (x)+1 : 1)

int i,N;

int main()
{
 freopen(_fin,"r",stdin);
 freopen(_fout,"w",stdout);

 scanf("%d",&N);
 if (N % 4 == 0)
   {
    printf("0\n%d\n",N/2);
    int x=1;
    for (i=1;i<=N;i++)
       {
        if (x==1 || x==4) printf("%d ",i);
        x=Next(x);
       }
    printf("\n%d\n",N/2);
    x=1;
    for (i=1;i<=N;i++)
       {
        if (x==2 || x==3) printf("%d ",i);
        x=Next(x);
       }
   }
   else if (N % 4 == 1)
          {
           printf("1\n%d\n",1+(N-1)/2);
           printf("1 ");
           int x=1;
           for (i=2;i<=N;i++)
              {
               if (x==1 || x==4) printf("%d ",i);
               x=Next(x);
              }
           printf("\n%d\n",(N-1)/2);
           x=1;
           for (i=2;i<=N;i++)
              {
               if (x==2 || x==3) printf("%d ",i);
               x=Next(x);
              }
          }
   else if (N % 4 == 2)
          {
           printf("1\n%d\n",1+(N-2)/2);
           printf("1 ");
           int x=1;
           for (i=3;i<=N;i++)
              {
               if (x==1 || x==4) printf("%d ",i);
               x=Next(x);
              }
           printf("\n%d\n%d ",1+(N-2)/2,2);
           x=1;
           for (i=3;i<=N;i++)
              {
               if (x==2 || x==3) printf("%d ",i);
               x=Next(x);
              }
          }
   else if (N % 4 == 3)
          {
           printf("0\n%d\n",2+((N-3)/2));
           printf("1 2 ");
           int x=1;
           for (i=4;i<=N;i++)
              {
               if (x==1 || x==4) printf("%d ",i);
               x=Next(x);
              }
           printf("\n%d\n",1+(N-3)/2);
           printf("3 ");
           x=1;
           for (i=4;i<=N;i++)
              {
               if (x==2 || x==3) printf("%d ",i);
               x=Next(x);
              }
          }

 fclose(stdin);
 fclose(stdout);
 return 0;
}