Cod sursa(job #2652762)

Utilizator RaresFelixTudose Rares Felix RaresFelix Data 25 septembrie 2020 17:30:47
Problema Multimi2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.42 kb
#include <bits/stdc++.h>
#define SSTR( x ) static_cast< std::ostringstream & >( \
        ( std::ostringstream() << std::dec << x ) ).str()
using namespace std;
typedef long long int ll;
typedef unsigned long long int ull;
typedef pair<int,int> ii;
typedef vector<int> vi;
typedef vector<pair<int,int> > vii;

ifstream fi("multimi2.in");
ofstream fo("multimi2.out");

int n,mi = 1000000,nn;
int A[1005];

int main()
{
    ///cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);
    fi>>n;
    if(n%4==0){
        fo<<"0\n"<<n/2<<"\n";
        for(int i=1;i<=n/4;i++)fo<<4*(i-1)+1<<" "<<4*(i-1)+4<<" ";
        fo<<"\n"<<n/2<<"\n";
        for(int i=1;i<=n/4;i++)fo<<4*(i-1)+2<<" "<<4*(i-1)+3<<" ";
    }
    if(n%4==1){
        fo<<"1\n"<<n/2+1<<"\n1 ";
        for(int i=1;i<=n/4;i++)fo<<4*(i-1)+2<<" "<<4*(i-1)+5<<" ";
        fo<<"\n"<<n/2<<"\n";
        for(int i=1;i<=n/4;i++)fo<<4*(i-1)+3<<" "<<4*(i-1)+4<<" ";
    }
    if(n%4==2){
        fo<<"1\n"<<n/2<<"\n1 ";
        for(int i=1;i<=n/4;i++)fo<<4*(i-1)+3<<" "<<4*(i-1)+6<<" ";
        fo<<"\n"<<n/2<<"\n2 ";
        for(int i=1;i<=n/4;i++)fo<<4*(i-1)+4<<" "<<4*(i-1)+5<<" ";
    }
    if(n%4==3){
        nn=(n/4)*4;
        fo<<"0\n"<<nn/2+1<<"\n3 ";
        for(int i=2;i<=nn/4+1;i++)fo<<4*(i-1)<<" "<<4*(i-1)+3<<" ";
        fo<<"\n"<<nn/2+2<<"\n1 2 ";
        for(int i=2;i<=nn/4+1;i++)fo<<4*(i-1)+1<<" "<<4*(i-1)+2<<" ";
    }
    return 0;
}