Cod sursa(job #1397297)

Utilizator savulescustefanSavulescu Stefan savulescustefan Data 23 martie 2015 13:23:11
Problema Multimi2 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.74 kb
#include <cstdio>

using namespace std;
int i,n;
int main()
{
    freopen ("multimi2.in","r",stdin);
    freopen ("multimi2.out","w",stdout);
    scanf ("%d", &n);
    if (n%4==0)
    {
        printf ("%d\n", 0);
        printf ("%d\n", n/2);
        for (i=1;i<=n/2;i+=2)
        printf ("%d ", i);
        for (i=n/2+2;i<=n;i+=2)
        printf ("%d ", i);
        printf ("\n%d\n", n/2);
        for (i=2;i<=n/2;i+=2)
        printf ("%d ", i);
        for (i=n/2+1;i<=n;i+=2)
        printf ("%d ", i);
    }
    else if (n%4==1)
    {
        printf ("%d\n", 1);
        printf ("%d\n", n/2+1);
        for (i=1;i<=n/4;i++)
        printf ("%d ", i);
        if (n/2>=i)
        printf ("%d ", n/2);
        for (i=n-n/4;i<n;i++)
        printf ("%d ", i);
        printf ("\n%d\n", n/2);
        for (i=n/4+1;i<n/2;i++)
        printf ("%d ", i);
        for (i=n/2+1;i<n-n/4;i++)
        printf ("%d ", i);
        printf ("%d ", n);
    }
    else if (n%4==2)
    {
        printf ("%d\n", 0);
        printf ("%d\n", n/2);
        for (i=1;i<=n/4;i++)
        printf ("%d ", i);
        if (n/2>=i)
        printf ("%d ", n/2);
        for (i=n-n/4+1;i<=n;i++)
        printf ("%d ", i);
        printf ("\n%d\n", n/2);
        for (i=n/4+1;i<n/2;i++)
        printf ("%d ", i);
        for (i=n/2+1;i<=n-n/4;i++)
        printf ("%d ", i);
    }
    else if (n%4==3)
    {
        printf ("%d\n", 0);
        printf ("%d\n", n/2+1);
        for (i=1;i<=n/4+1;i++)
        printf ("%d ", i);
        for (i=n-n/4-1;i<n;i++)
        printf ("%d ", i);
        printf ("\n%d\n", n/2);
        for (i=n/4+2;i<(n-n/4-1);i++)
        printf ("%d ", i);
        printf ("%d", n);
    }
    return 0;
}