Cod sursa(job #114513)

Utilizator silvia_the_bestSilvia Pripoae silvia_the_best Data 14 decembrie 2007 17:04:45
Problema Multimi2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
int main(){
	int x,y,n,i,p,u,m,sum[100001]={0};
	freopen("multimi2.in","r",stdin);
	freopen("multimi2.out","w",stdout);
	scanf("%d",&n);
	for (i=n;i>=1;--i) 
		sum[i]=sum[i+1]+i;
	if (n*(n+1)/2%2==0)
		printf("%0\n");
	else 
		printf("1\n");
	x=n*(n+1)/4;
	p=0;u=n-1;
	while (p<u) {
		m=(p+u)/2;
		if (x>=sum[m])
			u=m;
		else 
			p=m+1;
	}
	if(sum[p]>x)
		++p;
	y=x-sum[p];
	if(y>0){
		printf("%d\n",n-p+2);
		printf("%d ",y);
		for(i=p;i<n;++i)
			printf("%d ",i);
		printf("%d\n",n);
		printf("%d\n",p-2);
		for(i=1;i<p-1;++i)
			if(i!=y)
				printf("%d ",i);
		printf("%d\n",p);
	}
	else{
		printf("%d\n",n-p+1);
		//printf("%d ",y);
		for(i=p;i<n;++i)
			printf("%d ",i);
		printf("%d\n",n);
		printf("%d\n",p-2);
		for(i=1;i<p-1;++i)
			printf("%d ",i);
		printf("%d\n",p);
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}