Cod sursa(job #155694)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 12 martie 2008 08:49:13
Problema Multimi2 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <stdio.h>
int main(){
	int i,v[500002]={0},w[500002]={0},x,y,n,j;
	freopen("multimi2.in","r",stdin);
	freopen("multimi2.out","w",stdout);
	scanf("%d",&n);
	x=n/4;
	y=n%4;
//	printf("%d %d\n",x,y);
	for(i=y+1,j=1;j<=x;i++,j++)
		v[++v[0]]=i;
	for(i=x+y+1,j=1;j<=2*x;j++,i++)
		w[++w[0]]=i;
	for(i=y+1+3*x,j=1;j<=x;j++,i++)
		v[++v[0]]=i;
	switch (y){
		case 0: { 
			printf("0\n");
			printf("%d\n",v[0]);
			for(i=1;i<=v[0];i++)
				printf("%d ",v[i]);
			printf("\n%d\n",w[0]);
			for(i=1;i<=w[0];i++)
				printf("%d ",w[i]);
			break; }
		case 1: {
			printf("1\n");
			printf("%d\n1 ",v[0]+1);
			for(i=1;i<=v[0];i++)
				printf("%d ",v[i]);
			printf("\n%d\n",w[0]);
			for(i=1;i<=w[0];i++)
				printf("%d ",w[i]);
			break; }
		case 2: {
			printf("1\n");break;
			printf("%d\n1 ",v[0]+1);
			for(i=1;i<=v[0];i++)
				printf("%d ",v[i]);
			printf("\n%d\n2 ",w[0]+1);
			for(i=1;i<=w[0];i++)
				printf("%d ",w[i]);
			break; }
		case 3:{
			printf("0\n");
			printf("%d\n1 2 ",v[0]+2);
			for(i=1;i<=v[0];i++)
				printf("%d ",v[i]);
			printf("\n%d\n3 ",w[0]+1);
			for(i=1;i<=w[0];i++)
				printf("%d ",w[i]);
			break; }
	}
	return 0;
	fclose(stdout);
}