Cod sursa(job #1240017)

Utilizator laurageorgescuLaura Georgescu laurageorgescu Data 10 octombrie 2014 10:40:41
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.44 kb
#include<fstream>

using namespace std;

ifstream fin( "multimi2.in" );
ofstream fout( "multimi2.out" );

int main() {
    int n;
    fin >> n;
    if ( n % 4 == 0 ) {
        fout << "0\n" << n / 2 << '\n';
        for( int i = 1; i <= n / 4; ++ i ) {
            fout << i << ' ' << n + 1 - i << ' ';
        }
        fout << '\n' << n / 2 << '\n';
        for( int i = n / 4 + 1; i <= 3 * n / 4; ++ i ) {
            fout << i << ' ';
        }
    } else if ( n % 4 == 1 ) {
        fout << "1\n" << n / 2 + 1 << "\n1 ";
        for( int i = 2; i <= n / 4 + 1; ++ i ) {
            fout << i << ' ' << n + 2 - i << ' ';
        }
        fout << '\n' << n / 2 << '\n';
        for( int i = n / 4 + 2; i < n + 1 - n / 4; ++ i ) {
            fout << i << ' ';
        }
    } else if ( n % 4 == 3 ) {
        fout << "0\n" << n / 2 << "\n" << n << ' ';
        for( int i = 1; i <= n / 4; ++ i ) {
            fout << i << ' ' << n - i << ' ';
        }
        fout << "\n" << n / 2 + 1 << '\n';
        for( int i = n / 4 + 1; i < n - n / 4; ++ i ) {
            fout << i << ' ';
        }
    } else {
        fout << "1\n" << n / 2 << "\n2 ";
        for( int i = 3; i <= n / 4 + 2; ++ i ) {
            fout << i << ' ' << n + 3 - i << ' ';
        }
        fout << '\n' << n / 2 << "\n1 ";
        for( int i = n / 4 + 3; i < n - n / 4 + 1; ++ i ) {
            fout << i << ' ';
        }
    }
    fout << '\n';
    fin.close();
    fout.close();
    return 0;
}