Cod sursa(job #140190)

Utilizator DraStiKDragos Oprica DraStiK Data 21 februarie 2008 14:59:31
Problema Multimi2 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.53 kb
#include <stdio.h>
long n;
long m1[500005],m2[500005];
int main ()
{
    freopen ("multimi2.in","r",stdin);
    freopen ("multimi2.out","w",stdout);
    int i;
    scanf ("%ld",&n);
    if (n%4==0)
    {
               printf ("0\n%d\n",n/2);
               for (i=1; i<=n/2; i+=2)
                   printf ("%d %d ",i,n-i+1);
               printf ("\n%d\n",n/2);
               for (i=2; i<=n/2; i+=2)
                   printf ("%d %d ",i,n-i+1);
    }
    else if (n%4==3)
    {
               printf ("0\n%d\n",n/2);
               for (i=1; i<=(n-3)/2; i+=2)
                   printf ("%d %d ",i+1,n-i+1);
               printf ("%d",(n-1)/2);
               printf ("\n%d\n",(n+1)/2);
               for (i=2; i<=n/2; i+=2)
                   printf ("%d %d ",i+1,n-i+1);
               printf ("1 %d",(n+1)/2-1);
    }
    else if (n%4==2)
    {
               printf ("1\n%d\n",n/2);
               for (i=1; i<n/2; i+=2)
                   printf ("%d %d ",i,n-i+1);
               printf ("%d",n/2);
               printf ("\n%d\n",n/2);
               for (i=2; i<n/2; i+=2)
                   printf ("%d %d ",i,n-i+1);
               printf ("%d",n/2+1);
    }
    else if (n%4==1)
    {
               printf ("1\n%d\n",(n+1)/2);
               for (i=1; i<=(n-3)/2; i+=2)
                   printf ("%d %d ",i+1,n-i+1);
               printf ("1");
               printf ("\n%d\n",n/2);
               for (i=2; i<=(n+1)/2; i+=2)
                   printf ("%d %d ",i+1,n-i+1);
    } 
    return 0;
}