Cod sursa(job #1934016)

Utilizator 1475369147896537415369Andrei Udriste 1475369147896537415369 Data 21 martie 2017 03:08:40
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.55 kb
#include <cstdio>


int main(){

    freopen("multimi2.in", "r", stdin);
    freopen("multimi2.out", "w", stdout);

    int N; scanf("%d", &N);

    switch(N % 4){

        case 0: printf("0\n%d\n", N / 2);
                for(int i = 1; i <= N / 4; i++){
                    printf("%d %d ", i, N - i + 1);
                }printf("\n%d\n", N / 2);
                for(int i = N / 4 + 1; i <= N / 2; i++){
                    printf("%d %d ", i, N - i + 1);
                }break;

        case 1: printf("1\n%d\n1 ", N / 2 + 1); N--;
                for(int i = 1; i <= N / 4; i++){
                    printf("%d %d ", i + 1, N - i + 2);
                }printf("\n%d\n", N / 2);
                for(int i = N / 4 + 1; i <= N / 2; i++){
                    printf("%d %d ", i + 1, N - i + 2);
                }break;

        case 2: printf("1\n%d\n1 ", N / 2); N -= 2;
                for(int i = 1; i <= N / 4; i++){
                    printf("%d %d ", i + 2, N - i + 3);
                }printf("\n%d\n2 ", N / 2 + 1);
                for(int i = N / 4 + 1; i <= N / 2; i++){
                    printf("%d %d ", i + 2, N - i + 3);
                }break;

        case 3: printf("0\n%d\n1 2 ", N / 2 + 1); N -= 3;
                for(int i = 1; i <= N / 4; i++){
                    printf("%d %d ", i + 3, N - i + 4);
                }printf("\n%d\n3 ", N / 2 + 1);
                for(int i = N / 4 + 1; i <= N / 2; i++){
                    printf("%d %d ", i + 3, N - i + 4);
                }break;
    }

    return 0;
}