Cod sursa(job #716426)

Utilizator andreifirstCioara Andrei Ioan andreifirst Data 18 martie 2012 19:32:47
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
using namespace std;

ifstream f("multimi2.in"); ofstream g("multimi2.out");

int a[500005], b[500005], x, y, an, bn, n, r;

int main(){
	f>>n;
	if (n%2==1){
		if ((n-1)/2%2==1){
			r=0;
			for (int i=n; i>3; i-=4){
				an++; a[an]=i;
				bn++; b[bn]=i-1;
				bn++; b[bn]=i-2;
				an++; a[an]=i-3;
			}
			an++; a[an]=3;
			bn++; b[bn]=2;
			bn++; b[bn]=1;
		}
		else{
			r=1;
			for (int i=n; i>1; i-=4){
				an++; a[an]=i;
				bn++; b[bn]=i-1;
				bn++; b[bn]=i-2;
				an++; a[an]=i-3;
			}
			an++; a[an]=1;
		}
	}
	else {
		if (n/2%2==1){
			r=1;
			for (int i=n; i>2; i-=4){
				an++; a[an]=i;
				bn++; b[bn]=i-1;
				bn++; b[bn]=i-2;
				an++; a[an]=i-3;
			}
			an++; a[an]=2;
			bn++; b[bn]=1;
			
		}
		else {
			r=0;
			for (int i=n; i>0; i-=4){
				an++; a[an]=i;
				bn++; b[bn]=i-1;
				bn++; b[bn]=i-2;
				an++; a[an]=i-3;
			}				
		}
	}
	
	g<<r<<"\n";
	g<<an<<"\n";
	for (int i = 1; i<=an; i++) g<<a[i]<<" ";
	g<<"\n";
	g<<bn<<"\n";
	for (int i = 1; i<=bn; i++) g<<b[i]<<" ";
	g<<"\n";
}