Cod sursa(job #1070250)

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

using namespace std;


long long n,i;

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

    if (n%4==1)
     {

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

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

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

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

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


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

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

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

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

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

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

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

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


}