Cod sursa(job #2011919)

Utilizator MihneaGhiraMihnea MihneaGhira Data 17 august 2017 15:40:04
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.36 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("multimi2.in");
ofstream fout("multimi2.out");
int n,a[500010],b[500010],A,B,nr;
int main(){
    fin>>n;
    if(n%4==0){
        nr=0;
        for(int i=1;i<=n;i++){
            if(nr==4)
                nr=0;
            if(nr==0||nr==3)
                a[++A]=i;
            else
                b[++B]=i;
            nr++;

        }
        sort(a+1,a+A+1);
        sort(b+1,b+B+1);
        fout<<"0"<<"\n"<<B<<"\n";
        for(int i=1;i<=B;i++)
            fout<<b[i]<<" ";
        fout<<"\n";
        fout<<A<<"\n";

        for(int i=1;i<=A;i++)
            fout<<a[i]<<" ";
        return 0;
    }
    if(n%4==1){
        a[++A]=1;
        nr=0;
        for(int i=2;i<=n;i++){
             if(nr==4)
                nr=0;
            if(nr==0||nr==3)
                a[++A]=i;
            else
                b[++B]=i;
            nr++;
        }
        sort(a+1,a+A+1);
        sort(b+1,b+B+1);
        fout<<"1"<<"\n"<<A<<"\n";
        for(int i=1;i<=A;i++)
            fout<<a[i]<<" ";
        fout<<"\n";
        fout<<B<<"\n";

        for(int i=1;i<=B;i++)
            fout<<b[i]<<" ";
        return 0;

    }
    if(n%4==2){
        a[++A]=1;
        b[++B]=2;
        nr=0;
        for(int i=3;i<=n;i++){
             if(nr==4)
                nr=0;
            if(nr==0||nr==3)
                a[++A]=i;
            else
                b[++B]=i;
            nr++;
        }
        sort(a+1,a+A+1);
        sort(b+1,b+B+1);
        fout<<"1"<<"\n"<<A<<"\n";
        for(int i=1;i<=A;i++)
            fout<<a[i]<<" ";
        fout<<"\n";
        fout<<B<<"\n";

        for(int i=1;i<=B;i++)
            fout<<b[i]<<" ";
        return 0;
    }
    if(n%4==3){
        a[++A]=1;
        a[++A]=2;
        b[++B]=3;
        nr=0;
        for(int i=4;i<=n;i++){
           if(nr==4)
                nr=0;
            if(nr==0||nr==3)
                a[++A]=i;
            else
                b[++B]=i;
            nr++;
        }
        sort(a+1,a+A+1);
        sort(b+1,b+B+1);
        fout<<"0"<<"\n"<<A<<"\n";
        for(int i=1;i<=A;i++)
            fout<<a[i]<<" ";
        fout<<"\n";
        fout<<B<<"\n";

        for(int i=1;i<=B;i++)
            fout<<b[i]<<" ";
        return 0;
    }
    return 0;
}