Cod sursa(job #332476)

Utilizator c_e_manuEmanuel Cinca c_e_manu Data 18 iulie 2009 00:05:44
Problema Multimi2 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<fstream>
#define MaxN 1000005

using namespace std;

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

int M1[MaxN],M2[MaxN],i,j,n,diff,n1,n2,op;

int main()
{	fin>>n;
	op=n%4;
	if(op==0)
	{	diff=0;n1=n2=1;
		for(i=1;i<=n;i++)
		{	if(i%4==0||i%4==1)	{M1[n1]=i;n1++;}
			if(i%4==3||i%4==2)	{M2[n2]=i;n2++;}
		}
	}
	if(op==1)
	{	n1=2;M1[1]=1;diff=1;n2=1;
		for(i=2;i<=n;i++)
		{	if(i%4==0||i%4==3)	{M1[n1]=i;n1++;}
			if(i%4==1||i%4==2)	{M2[n2]=i;n2++;}
		}
	}
	if(op==2)
	{	n1=n2=2;M1[1]=1;M2[1]=2;diff=1;
		for(i=3;i<=n;i++)
		{	if(i%4==0||i%4==3)	{M1[n1]=i;n1++;}
			if(i%4==1||i%4==2)	{M2[n2]=i;n2++;}
		}
	}
	if(op==3)
	{	n1=3;M1[1]=1;M1[2]=2;M2[1]=3;n2=2;diff=0;
		for(i=4;i<=n;i++)
		{	if(i%4==0||i%4==3)	{M1[n1]=i;n1++;}
			if(i%4==1||i%4==2)	{M2[n2]=i;n2++;}
		}
	}
	fout<<diff<<'\n';
	fout<<n1-1<<'\n';
	for(i=1;i<n1;i++) fout<<M1[i]<<' ';
	fout<<'\n'<<n2-1<<'\n';
	for(i=1;i<n2;i++) fout<<M2[i]<<' ';
	return 0;
}