Cod sursa(job #110671)

Utilizator ProstuStefan-Alexandru Filip Prostu Data 27 noiembrie 2007 11:49:28
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>

const int T1[] = {0, 1, 1, 2};
const int T2[] = {0, 0, 1, 1};
const int M1[4][2] = {{}, {1}, {1}, {1, 2}};
const int M2[4][2] = {{}, {}, {2}, {3}};

int main(void) {
	FILE *fin = fopen("multimi2.in", "rt");
	FILE *fout = fopen("multimi2.out", "wt");
	int N, t, NR, i, s, e;

	fscanf(fin, " %d", &N);

	t = N % 4;

	fprintf(fout, (t == 1 || t == 2) ? "1\n" : "0\n");
	
	NR = (N - t) >> 1;

	fprintf(fout, "%d\n", NR + T1[t]);
	for (i = 0; i < T1[t]; ++i)
		fprintf(fout, "%d ", M1[t][i]);
	
	for (s = t + 1, e = N; s < e; s += 2, e -= 2)
		fprintf(fout, "%d %d ", s, e);
	fprintf(fout, "\n");
	
	fprintf(fout, "%d\n", NR + T2[t]);
	for (i = 0; i < T2[t]; ++i)
		fprintf(fout, "%d ", M2[t][i]);
	
	for (s = t + 2, e = N - 1; s < e; s += 2, e -= 2)
		fprintf(fout, "%d %d ", s, e);
	fprintf(fout, "\n");

	fclose(fin);
	fclose(fout);
	return 0;
}