Cod sursa(job #2011620)

Utilizator MihneaGhiraMihnea MihneaGhira Data 16 august 2017 18:29:45
Problema Multimi2 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.11 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("multimi2.in");
ofstream fout("multimi2.out");
int n,a[500010],b[500010],A,B;
int main(){
    fin>>n;
    if(n%4==0){
        for(int i=1;i<=n;i++){
            if(i%4==0 || i%4==3){
                a[++A]=i;
            }
            else{
                b[++B]=i;
            }
        }
        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]<<" ";
    }
    if(n%4==1){
        a[++A]=1;
        for(int i=2;i<=n;i++){
            if(i%4==0 || i%4==3){
                a[++A]=i;
            }
            else{
                b[++B]=i;
            }
        }
        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]<<" ";

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