Cod sursa(job #161895)

Utilizator MirageRobert Sandu Mirage Data 18 martie 2008 22:26:27
Problema Multimi2 Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<stdio.h>
int main () {
	freopen("multimi2.in","r",stdin);
	freopen("multimi2.out","w",stdout);
	int v[100000],i,n,nr1=0,nr2=0;
	scanf("%d",&n);
	if(!n%4){
		printf("0\n");
		for(i=1;i<=n;++i)
			if(!(i%4)||!((i-1)%4)){
				++nr1;
				v[i]=1;
			}
			else{
				++nr2;
				v[i]=2;
			}
	}
	if(n%4==1){
		printf("1\n");
		v[1]=1;
		nr1=1;
		for(i=2;i<=n;++i)
			if(!((i-2)%4)||!((i-1)%4)){
				++nr1;
				v[i]=1;
			}
			else{
				++nr2;
				v[i]=2;
			}
	}
	if(n%4==2){
		printf("1\n");
		v[1]=1;
		v[2]=2;
		nr1=nr2=1;
		for(i=3;i<=n;++i)
			if(!((i-2)%4)||!((i-3)%4)){
				++nr1;
				v[i]=1;
			}
			else{
				++nr2;
				v[i]=2;
			}
	}
	if(n%4==3){
		printf("0\n");
		v[1]=1;
		v[2]=1;
		v[3]=2;
		nr1=2;
		nr2=1;
		for(i=4;i<=n;++i)
			if(!(i%4)||!((i-3)%4)){
				++nr1;
				v[i]=1;
			}
			else{
				++nr2;
				v[i]=2;
			}
	}
	printf("%d\n",nr1);
	for(i=1;i<=n;++i)
		if(v[i]==1)
			printf("%d ",i);
	printf("\n");
	printf("%d\n",nr2);
	for(i=1;i<=n;++i)
		if(v[i]==2)
			printf("%d ",i);
	printf("\n");
	return 0;
}