Cod sursa(job #205530)

Utilizator Matei14Popa-Matei Mihai Matei14 Data 1 septembrie 2008 17:50:11
Problema Multimi2 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.54 kb
#include<stdio.h>
int main(){
	int a[3][100005];
	int n,i,r,q;
	freopen("multimi2.in","r",stdin);
	freopen("multimi2.out","w",stdout);
	scanf("%d",&n);
	r=1;
	q=1;
	if(n%4==0){
		printf("0\n");
		for(i=1;i<=n;i+=4){
			a[1][q++]=i;
			a[2][r++]=i+1;
			a[2][r++]=i+2;
			a[1][q++]=i+3;
		}
		printf("%d\n",q-1);
		for(i=1;i<q;++i)
			printf("%d ",a[1][i]);
		printf("\n");
		printf("%d\n",r-1);
		for(i=1;i<r;++i)
			printf("%d ",a[2][i]);
	}
	else
		if(n%4==1){
			printf("1\n");
			a[1][q++]=1;
			for(i=2;i<=n;i+=4){
				a[1][q++]=i;
				a[2][r++]=i+1;
				a[2][r++]=i+2;
				a[1][q++]=i+3;
			}
			printf("%d\n",q-1);
			for(i=1;i<q;++i)
				printf("%d ",a[1][i]);
			printf("\n");
			printf("%d\n",r-1);
			for(i=1;i<r;++i)
				printf("%d ",a[2][i]);
	}
	else
		if(n%4==2){
			printf("1\n");
			a[1][q++]=1;
			a[2][r++]=2;
			for(i=3;i<=n;i+=4){
				a[1][q++]=i;
				a[2][r++]=i+1;
				a[2][r++]=i+2;
				a[1][q++]=i+3;
			}
			printf("%d\n",q-1);
			for(i=1;i<q;++i)
				printf("%d ",a[1][i]);
			printf("\n");
			printf("%d\n",r-1);
			for(i=1;i<r;++i)
				printf("%d ",a[2][i]);
	}
	else
		if(n%4==3){
			printf("0\n");
			a[1][q++]=1;
			a[1][q++]=2;
			a[2][r++]=3;
			for(i=4;i<=n;i+=4){
				a[1][q++]=i;
				a[2][r++]=i+1;
				a[2][r++]=i+2;
				a[1][q++]=i+3;
			}
			printf("%d\n",q-1);
			for(i=1;i<q;++i)
				printf("%d ",a[1][i]);
			printf("\n");
			printf("%d\n",r-1);
			for(i=1;i<r;++i)
				printf("%d ",a[2][i]);
		}
	fclose(stdin);
	fclose(stdout);
	return 0;
}