Cod sursa(job #583781)

Utilizator maritimCristian Lambru maritim Data 22 aprilie 2011 17:18:05
Problema Multimi2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>

bool X[1000100];
long int N;
long long a = 0;
int nr = 0;

int main()
{
	FILE *f = fopen("multimi2.in","r");
	FILE *g = fopen("multimi2.out","w");
	
	fscanf(f,"%d",&N);
	a = N*(N+1)/2;
	if(a%2)
		fprintf(g,"1\n");
	else
		fprintf(g,"0\n");
	a /= 2;
	long long sum1 = 0;
	do
	{
		for(int i=1;sum1<a;i++)
			if(!X[i])
			{
				X[i] = true;
				sum1 += i;
				nr ++;
			}
		for(int i=1;sum1 > a;i++)
			if(X[i])
			{
				X[i] = false;
				sum1 -= i;
				nr --;
			}
	}while(sum1!=a);
	fprintf(g,"%d\n",nr);
	for(int i=1;i<=N;i++)
		if(X[i])
			fprintf(g,"%d ",i);
	fprintf(g,"\n%d\n",N-nr);
	for(int i=1;i<=N;i++)
		if(!X[i])
			fprintf(g,"%d ",i);
	
	fclose(g);
	fclose(f);
}