Cod sursa(job #1070248)

Utilizator robertstrecheStreche Robert robertstreche Data 31 decembrie 2013 14:24:35
Problema Multimi2 Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.39 kb
#include <cstdio>

using namespace std;


long long n,i;

int main()
{
    freopen("multimi2.in","r",stdin);
    freopen("multimi2.out","w",stdout);
    scanf("%ld",&n);
    if (n%4==1 || n%4==2)
         printf("1\n");
    else
     printf("0\n");

    if (n%4==1)
     {

         printf("%ld\n1 ",n/2+1);

          for (i=2;i<=n;i++)
             {
                if (i<=n/2+1 && i%2==0)
                   printf("%ld ",i);
                if (i>n/2+1 && i%2)
                   printf("%ld ",i);
             }

          printf("\n%ld\n",n/2);

            for (i=2;i<=n;i++)
             {
                if (i<=n/2+1 && i%2)
                  printf("%ld ",i);
                if (i>n/2+1 && i%2==0)
                   printf("%ld ",i);
             }
     }

     if (n%4==2)
      {
           printf("%ld\n1",n/2);


          for (i=2;i<=n;i++)
             {
                if (i<=n/2 && i%2)
                   printf("%ld ",i);
                if (i>n/2+1 && i%2==0)
                   printf("%ld ",i);
             }

          printf("\n%ld\n",n/2);

            for (i=2;i<=n;i++)
             {
                if (i<=n/2+1 && i%2==0)
                   printf("%ld ",i);
                if (i>n/2 && i%2)
                   printf("%ld ",i);
             }
      }

     if (n%4==3)
      {
           printf("%ld\n1 2 ",n/2+1);

          for (i=4;i<=n;i++)
             {
                if (i<=n/2+1 && i%2==0)
                   printf("%ld ",i);
                if (i>n/2+2 && i%2)
                   printf("%ld ",i);
             }
          printf("\n%ld\n3",n/2);

            for (i=4;i<=n;i++)
             {
                if (i<=n/2+2 && i%2)
                   printf("%ld ",i);
                if (i>n/2+1 && i%2==0)
                   printf("%ld ",i);
             }
      }
       if (n%4==0)
      {
          printf("%ld\n",n/2);

          for (i=1;i<=n;i++)
             {
                if (i<=n/2 && i%2)
                   printf("%ld ",i);
                if (i>n/2 && i%2==0)
                   printf("%ld ",i);
             }
          printf("\n%ld\n",n/2);

            for (i=1;i<=n;i++)
             {
                if (i<=n/2 && i%2==0)
                   printf("%ld ",i);
                if (i>n/2 && i%2)
                   printf("%ld ",i);
             }
      }


}