Cod sursa(job #788798)

Utilizator a_h1926Heidelbacher Andrei a_h1926 Data 15 septembrie 2012 21:34:00
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <cstdio>

using namespace std;

const int MaxN = 1000005;

int N, S[2][MaxN], D;

inline int Insert(int X[], int V) {
    X[++X[0]] = V;
}

void Solve() {
    int i;
    for (i = N; i >= 4; i -= 4) {
        Insert(S[0], i), Insert(S[0], i-3);
        Insert(S[1], i-1), Insert(S[1], i-2);
    }
    if (i == 3) {
        D = 0;
        Insert(S[0], 1), Insert(S[0], 2);
        Insert(S[1], 3);
    }
    if (i == 2) {
        D = 1;
        Insert(S[0], 1);
        Insert(S[1], 2);
    }
    if (i == 1) {
        D = 1;
        Insert(S[0], 1);
    }
}

void Read() {
    freopen("multimi2.in", "r", stdin);
    scanf("%d", &N);
}

void PrintX(int X[]) {
    printf("%d\n", X[0]);
    for (int i = 1; i <= X[0]; ++i)
        printf("%d ", X[i]);
    printf("\n");
}

void Print() {
    freopen("multimi2.out", "w", stdout);
    printf("%d\n", D);
    PrintX(S[0]);
    PrintX(S[1]);
}

int main() {
    Read();
    Solve();
    Print();
    return 0;
}