Cod sursa(job #115903)

Utilizator raduzerRadu Zernoveanu raduzer Data 17 decembrie 2007 13:19:53
Problema Multimi2 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.82 kb
#include <stdio.h>

int a[1000000],b[1000000],n,x,y,s;

int main()
{
    freopen("multimi2.in","r",stdin);
    freopen("multimi2.out","w",stdout);
    scanf("%d",&n);
    if (n%4==0)
    {
        s=0;
        for (int i=1; i<=n; ++i)
        {
            if (i%4==0 || i%4==1) 
            {
                ++x;
                a[x]=i;
            }
            else 
            {
                 ++y;
                 b[y]=i;
            }
        }
    }
    if (n%4==1)
    {
         s=1;
         ++x;
         a[x]=1;
         for (int i=2; i<=n; ++i)
         {
            if (i%4==0 || i%4==3) 
            {
                ++x;
                a[x]=i;
            }
            else 
            {
                 ++y;
                 b[y]=i;
            }
         }     
    }
    if (n%4==2)
    {
        s=1;
        ++x; 
        a[x]=1;
        ++y;
        b[y]=2;
        for (int i=3; i<=n; ++i)
        {
            if (i%4==0 || i%4==3) 
            {
                ++x;
                a[x]=i;
            }
            else 
            {
                 ++y;
                 b[y]=i;
            }
        }
    }
    if (n%4==3)
    {
        s=0;
        ++x;
        a[x]=1;
        ++x;
        a[x]=2;
        ++y;
        b[y]=3;
        for (int i=4; i<=n; ++i)
        {
            if (i%4==0 || i%4==3) 
            {
                ++x;
                a[x]=i;
            }
            else 
            {
                 ++y;
                 b[y]=i;
            }
        }
    }
    printf("%d\n",s);
    printf("%d\n",x);
    for (int i=1; i<x; ++i) printf("%d ",a[i]);
    printf("%d\n",a[x]);
    printf("%d\n",y);
    for (int i=1; i<y; ++i) printf("%d ",b[i]);
    printf("%d\n",b[y]);
    return 0;
}