Cod sursa(job #389385)

Utilizator shinerainBarbu Mada shinerain Data 1 februarie 2010 16:09:51
Problema Multimi2 Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.42 kb
#include <stdio.h>
FILE*f=fopen("multimi2.in","r"),
*g=fopen("multimi2.out","w");
int n,v[1000001],i,j,aux, par,n1,nrel1,nrel2,dmin;
int main()
{
	fscanf(f,"%d" ,&n);
	aux=0;
	for (i=1;i<=n;i++)
		v[i]=0;
	
	n1=n/2;
	
	/*if (n1%2==0 && n%2==1)
		{v[1]=1;
		v[n]=1;
		v[2]=1;
		nrel1=3;
		for (i=3;i<n1;i=i++)
			{v[i]=2;
			nrel2++;}
		
		v[n1]=1;
		n1++;
		nrel1++;
		v[n1]=2;
		n1++;
		nrel2++;
		v[n-1]=1;
		nrel1++;
		
			for(i=n1;i<n-1;i=i++)
				{v[i]=2;
				nrel2++;}
		dmin=1;
		}
		
	if (n1%2!=0 && n%2==0)
		
		{v[1]=1;
		for (i=2;i<n1;i=i++)
			{v[i]=2; nrel2++;}
		
		v[n1]=1;
		n1++;
		nrel1=3;
		v[n1]=2;
		n1++;
		v[n]=1;
		nrel2++;
		
			for(i=n1;i<n;i=i++)
				v[i]=2;
		
		dmin=1;	
		}*/
			
	if (n%2==0)
		{for (i=1;i<n1;i=i+2)
			{v[i]=1;
			v[i+1]=2;
			nrel1++;
				nrel2++;}
		for (i=n1+1;i<=n;i=i+2)
			{v[i]=2;
			v[i+1]=1;
			nrel1++;
				nrel2++;}
			dmin=0;
		}
		
	if (n%2==1)
		{	for (i=1;i<=n1;i=i+2)
				{v[i]=1;
				v[i+1]=2;
				nrel1++;
				nrel2++;}
			for(i=n1+1;i<=n-1;i=i+2)
				{v[i]=1;
				v[i+1]=2;nrel1++;
				nrel2++;}
				
			v[n]=2;
			dmin=0;
		}

	fprintf(g,"%d \n",dmin);
	fprintf(g,"%d",nrel1);
	fprintf(g,"\n");
	for (i=1;i<=n;i++)
		if(v[i]==1)
		fprintf(g,"%d ",i);	
		
	fprintf(g,"\n");
	fprintf(g,"%d",nrel2);
	fprintf(g,"\n");
	for (i=1;i<=n;i++)
		if(v[i]==2)
		fprintf(g,"%d ",i);

	
	return 0;
}