Cod sursa(job #208800)

Utilizator pitbullpitbulll pitbull Data 19 septembrie 2008 00:29:10
Problema Multimi2 Scor 50
Compilator c Status done
Runda Arhiva de probleme Marime 0.91 kb
# include <stdio.h>
# define NMAX 1000001

int N;
int v[NMAX];
int nr1,nr2,s,i;

void write_sol(){
	FILE* f=fopen("multimi2.out","wt");
	fprintf(f,"%d\n",s);
	fprintf(f,"%d\n",nr1);
	for (i=1;i<=N;i++)
		if(v[i]==1)
			fprintf(f,"%d ",i);
	fprintf(f,"\n");	
	fprintf(f,"%d\n",nr2);
	for (i=1;i<=N;i++)
		if(v[i]==2)
			fprintf(f,"%d ",i);
	fclose(f);
}

int main (){
	FILE* f=fopen("multimi2.in","rt");
	fscanf(f,"%d",&N);
	fclose(f);
	
	int cat=N/4;
	for (i=1;i<=cat*4;i+=4){
		v[i]=1;
		v[i+1]=2;
		v[i+2]=2;
		v[i+3]=1;
	}
	
	if(N%4==0){
		s=0;
		nr1=nr2=N/2;
	}
	else if(N%4==2){
		v[cat*4+1]=1;
		v[cat*4+2]=2;
		s=1;
		nr1=nr2=N/2;
	}
	else if(N%4==1){
		v[cat*4+1]=2;
		v[cat*2]=1;
		s=1;
		nr1=N/2+1;
		nr2=N/2;
	}
	else {
		v[cat*4+1]=2;
		v[cat*4+2]=2;
		v[cat*2]=1;
		v[cat*4+3]=1;
		s=0;
		nr1=cat*2+1;
		nr2=cat*2+2;
	}
	
	write_sol();
	return 0;
}