Cod sursa(job #340753)

Utilizator vlad.maneaVlad Manea vlad.manea Data 16 august 2009 14:28:13
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.53 kb
#include <fstream>
using namespace std;

int main()
{
	ifstream fin("multimi2.in");
	ofstream fout("multimi2.out");

	int N;

	fin >> N;

	switch(N % 4)
	{
	case 0:
		{
			fout << 0 << '\n';
			fout << N/2 << '\n';
			for (int i = 1; i <= N; ++i)
				if (i%4 == 1 || i%4 == 0)
					fout << i << ' ';
			fout << '\n' << N/2 << '\n';
			for (int i = 1; i <= N; ++i)
				if (i%4 == 2 || i%4 == 3)
					fout << i << ' ';
			fout << '\n';

			break;
		}
	case 3:
		{
			fout << 0 << '\n';
			fout << N/2+1 << '\n';
			fout << 1 << ' ' << 2 << ' ';
			for (int i = 4; i <= N; ++i)
				if (i%4 == 0 || i%4 == 3)
					fout << i << ' ';
			fout << '\n' << N/2 << '\n';
			fout << 3 << ' ';
			for (int i = 5; i <= N; ++i)
				if (i%4 == 1 || i%4 == 2)
					fout << i << ' ';
			fout << '\n';

			break;
		}
	case 1:
		{
			fout << 1 << '\n';
			fout << N/2+1 << '\n';
			fout << 1 << ' ';
			for (int i = 2; i <= N; ++i)
				if (i%4 == 2 || i%4==1)
					fout << i << ' ';
			fout << '\n' << N/2 << '\n';
			for (int i = 3; i <= N; ++i)
				if (i%4 == 3 || i%4 == 0)
					fout << i << ' ';
			fout << '\n';

			break;
		}
	case 2:
		{
			fout << 1 << '\n';
			fout << N / 2 << '\n';
			fout << 1 << ' ';
			for (int i = 3; i <= N; ++i)
				if (i%4 == 3 || i%4==2)
					fout << i << ' ';
			fout << '\n' << N/2 << '\n';
			fout << 2 << ' ';
			for (int i = 4; i <= N; ++i)
				if (i%4 == 0 || i%4 == 1)
					fout << i << ' ';
			fout << '\n';
		}
	}

	fin.close();
	fout.close();

	return 0;
}