Cod sursa(job #196389)

Utilizator gcosminGheorghe Cosmin gcosmin Data 26 iunie 2008 11:09:18
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>

#define NMAX 1000010

int N;

char rez[NMAX];

int main()
{
	int i, j, k;

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

	scanf("%d", &N);

	int q = N % 4;

	if (q == 1) rez[1] = 0;
	else
	if (q == 2) rez[1] = 0, rez[2] = 1;
	else
	if (q == 3) rez[1] = 0, rez[2] = 0, rez[3] = 1;

	for (i = q + 1, j = N, k = 0; i < j; i++, j--, k++) rez[i] = rez[j] = k & 1;

	printf("%lld\n", ((long long) N * (N + 1) / 2) & 1);

	int nr1 = 0, nr2 = 0;
	for (i = 1; i <= N; i++) nr1 += rez[i] == 0, nr2 += rez[i] == 1;
	printf("%d\n", nr1);
	for (i = 1; i <= N; i++) if (rez[i] == 0) printf("%d ", i);
	printf("\n%d\n", nr2);
	for (i = 1; i <= N; i++) if (rez[i] == 1) printf("%d ", i);
	printf("\n");

return 0;
}