Cod sursa(job #108860)

Utilizator dominoMircea Pasoi domino Data 23 noiembrie 2007 23:41:16
Problema Multimi2 Scor Ascuns
Compilator cpp Status done
Runda Marime 0.71 kb
#include <stdio.h>

#define MAX_N 1000005
#define FIN "multimi2.in"
#define FOUT "multimi2.out"

int N;
char U[MAX_N];

int main(void)
{
    int i, cnt = 0;
    long long half;

    freopen(FIN, "r", stdin);
    freopen(FOUT, "w", stdout);

    scanf("%d", &N);

    half = ((long long)N*(N+1)/2)/2;
    for (i = N; half > 0; )
    {
        for (; i > 0 && (U[i] || i > half); --i);
        half -= i; U[i] = 1; cnt++;
    }
    printf("%lld\n", ((long long)N*(N+1)/2)%2);
    printf("%d\n", cnt);
    for (i = 1; i <= N; ++i)
        if (U[i]) printf("%d ", i);
    printf("\n%d\n", N-cnt);
    for (i = 1; i <= N; ++i)
        if (!U[i]) printf("%d ", i);
    printf("\n");

    return 0;
}