Cod sursa(job #293368)

Utilizator emysp2005Spita Emanuel emysp2005 Data 1 aprilie 2009 17:57:24
Problema Multimi2 Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<fstream.h>
ifstream fin("multimi2.in");
ofstream fout("multimi2.out");
int main()
{
	long int n,i,j,s1,s2,u1,u2;
	fin>>n;u1=1;u2=n;
	if ((n*(n+1)/2)%2==0) 
	{
		fout<<"0"<<'\n';
		s2=n*(n+1)/2;
		s1=0;i=1;
		while (s1!=s2)
		{
			if (i%2==1)
			{
				s1=s1+u2;
				s2=s2-u2;
				u2=u2-1;
			}
			else
			{
				s1=s1+u1;
				s2=s2-u1;
				u1=u1+1;
			}
			i++;
		}
		i=i-1;
		fout<<n-i<<'\n';
		for (j=u1;j<=u2;j++)
		{fout<<j<<" ";}
		fout<<'\n'<<i<<'\n';
		for (j=1;j<u1;j++)
		{fout<<j<<" ";}
		for (j=u2+1;j<=n;j++)
		{fout<<j<<" ";}
	}
	else 
	{
		fout<<"1"<<'\n';
		s2=n*(n+1)/2;
		s1=0;i=1;
		while (s1<s2+1)
		{
			if (i%2==1)
			{
				s1=s1+u2;
				s2=s2-u2;
				u2=u2-1;
			}
			else
			{
				s1=s1+u1;
				s2=s2-u1;
				u1=u1+1;
			}
			i++;
		}
		i=i-1;
		fout<<n-i<<'\n';
		for (j=u1;j<=u2;j++)
		{fout<<j<<" ";}
		fout<<'\n'<<i<<'\n';
		for (j=1;j<u1;j++)
		{fout<<j<<" ";}
		for (j=u2+1;j<=n;j++)
		{fout<<j<<" ";}
	}
	return 0;
}