Cod sursa(job #3211161)

Utilizator ironego27Alexandru Gabriel Stefan ironego27 Data 8 martie 2024 17:11:02
Problema Multimi2 Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 3.56 kb
#include <fstream>
using namespace std;
ifstream cin("multimi2.in");
ofstream cout("multimi2.out");
int n, i, j, cnt1=0, cnt2=0, x=0, y=0, a[1000000], b[1000000], z, w;
int main()
{
    cin>>n;
    if(n%2==0 && (n/2)%2==0)
    {
        cout<<0<<'\n';
        z=n/2-1;
        w=z;
        for(i=1; i<=n/2; i+=2)
        {
            a[x]=i;
            x++;
            cnt1++;
        }
        for(i=2; i<=n/2; i+=2)
        {
            b[y]=i;
            y++;
            cnt2++;
        }
        for (i=n; i>n/2; i-=2)
        {
            a[w]=i;
            w--;
            cnt1++;
        }
        for (i=n-1; i>n/2; i-=2)
        {
            b[z]=i;
            z--;
            cnt2++;
        }
        cout<<cnt1<<'\n';
        for(i=0; i<cnt1; ++i)
            cout<<a[i]<<" ";
        cout<<'\n';
        cout<<cnt2<<'\n';
        for(i=0; i<cnt2; ++i)
            cout<<b[i]<<" ";
        return 0;
    }
    if(n%2==0 && (n/2)%2!=0)
    {
        cout<<1<<'\n';
        w=n/2-1;
        z=w;
        for(i=1; i<n/2; i+=2)
        {
            a[x]=i;
            ++x;
            cnt1++;
        }
        for(i=2; i<n/2; i+=2)
        {
            b[y]=i;
            ++y;
            cnt2++;
        }
        for (i=n; i>n/2+1; i-=2)
        {
            a[w]=i;
            w--;
            cnt1++;
        }
        for (i=n-1; i>n/2+1; i-=2)
        {
            b[z]=i;
            z--;
            cnt2++;
        }
        a[w]=n/2;
        b[z]=n/2+1;
        cnt1++;
        cnt2++;
        cout<<cnt1<<'\n';
        for(i=0; i<cnt1; ++i)
            cout<<a[i]<<" ";
        cout<<'\n';
        cout<<cnt2<<'\n';
        for(i=0; i<cnt2; ++i)
            cout<<b[i]<<" ";
        return 0;
    }
    if(n%2!=0 && ((n-1)/2)%2==0)
    {
        cout<<1<<'\n';
        w=(n-1)/2+1;
        z=(n-1)/2;
        a[0]=1;
        x++;
        cnt1++;
        for(i=2; i<=(n-1)/2+1; i+=2)
        {
            a[x]=i;
            x++;
            cnt1++;
        }
        for(i=3; i<=(n-1)/2+1; i+=2)
        {
            b[y]=i;
            y++;
            cnt2++;
        }
        for (i=n; i>(n-1)/2+1; i-=2)
        {
            a[w-1]=i;
            w--;
            cnt1++;
        }
        for (i=n-1; i>(n-1)/2+1; i-=2)
        {
            b[z-1]=i;
            z--;
            cnt2++;
        }
        cout<<cnt1<<'\n';
        for(i=0; i<cnt1; ++i)
            cout<<a[i]<<" ";
        cout<<'\n';
        cout<<cnt2<<'\n';
        for(i=0; i<cnt2; ++i)
            cout<<b[i]<<" ";
        return 0;
    }
    if(n%2!=0 && ((n-1)/2)%2!=0)
    {
        cout<<0<<'\n';
        w=(n-1)/2;
        z=(n-1)/2-1;
        a[0]=1;
        x++;
        cnt1++;
        for(i=2; i<=(n-1)/2; i+=2)
        {
            a[x]=i;
            x++;
            cnt1++;
        }
        for(i=3; i<=(n-1)/2; i+=2)
        {
            b[y]=i;
            y++;
            cnt2++;
        }
        for (i=n; i>(n-1)/2+2; i-=2)
        {
            a[w]=i;
            w--;
            cnt1++;
        }
        for (i=n-1; i>(n-1)/2+2; i-=2)
        {
            b[z]=i;
            z--;
            cnt2++;
        }
        a[x]=(n-1)/2+1;
        b[y]=a[x]+1;
        cout<<cnt1<<'\n';
        for(i=0; i<=cnt1; ++i)
            cout<<a[i]<<" ";
        cout<<'\n';
        cout<<cnt2<<'\n';
        for(i=0; i<=cnt2; ++i)
            cout<<b[i]<<" ";
        return 0;
    }
    cin.close();
    cout.close();
    return 0;
}