Cod sursa(job #167226)

Utilizator andrei.poenaruPoenaru Andrei andrei.poenaru Data 29 martie 2008 11:25:16
Problema Multimi2 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.34 kb
#include<stdio.h>

int main(){


FILE *f, *g;
f=fopen("multimi2.in", "r");
g=fopen("multimi2.out", "w");
long n, x, i;

fscanf(f, "%ld", &n);
x=3+((n-5)/2);

if(n%2==0&&n%4!=0&&n!=2&&n!=3){
	fprintf(g, "1\n");
	fprintf(g, "%ld\n", n/2);
	for(i=1;i<=(n-2)/4;i++)
		fprintf(g, "%ld %ld ", i, n-2-i+1);
	fprintf(g, "%ld", n-1);
	fprintf(g, "\n%ld\n", n/2);
	for(i=i;i<=(n-2)/2;i++)
		fprintf(g, "%ld %ld ", i, n-2-i+1);
	fprintf(g, "%ld", n);
	}
else if(n%4==0&&n!=2&&n!=3){
	fprintf(g, "0\n");
	fprintf(g, "%ld\n", n/2);
	for(i=1;i<=n/4;i++)
		fprintf(g, "%ld %ld ", i, n-i+1);
	fprintf(g, "\n%ld\n", n/2);
	for(i=i;i<=n/2;i++)
		fprintf(g, "%ld %ld ", i, n-i+1);
	}
else if(n%2!=0&&x%2==0&&n!=2&&n!=3){
	fprintf(g, "0\n");
	fprintf(g, "%ld\n", n/2);
	for(i=1;i<=n/4;i++)
		fprintf(g, "%ld %ld ", i, n-1);
	fprintf(g, "%ld\n%ld\n", n, n/2+1);
	for(i=i;i<=n/2;i++)
		fprintf(g, "%ld %ld ", i, n-i);
	}
else if(n%2!=0&&x%2!=0&&n!=2&&n!=3){
	fprintf(g, "1\n");
	fprintf(g, "%ld\n", n/2+1);
	for(i=1;i<=(n-2)/4+1;i++)
		fprintf(g, "%ld %ld ", i, (n-2)-i);
	fprintf(g, "%ld\n%ld\n", n-1, n/2);
	for(i=i;i<=(n-2)/2;i++)
		fprintf(g, "%ld %ld ", i, (n-2)-i);
	fprintf(g, "%ld %ld", n-2, n);
	}
else if(n==2)
	fprintf(g, "1\n1\n1\n1\n2\n");
else if(n==3)
	fprintf(g, "0\n2\n1 2\n1\n3");

fclose(f);
fclose(g);
return 0;
}