Cod sursa(job #206447)

Utilizator rapidu36Victor Manz rapidu36 Data 6 septembrie 2008 19:03:31
Problema Multimi2 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
using namespace std;
#include<fstream>

void rest0(int n,ofstream &out){
	int i,j;
	out<<0<<"\n";
	out<<n/2<<"\n";
	for(i=1,j=n;i<=n/4;++i,--j)
		out<<i<<" "<<j<<" ";
	out<<"\n";
	out<<n/2<<"\n";
	for(;i<j;++i,--j)
		out<<i<<" "<<j<<" ";
	out<<"\n";
}

void rest1(int n,ofstream &out){
	int i,j;
	out<<1<<"\n";
	out<<n/2+1<<"\n"<<1<<" ";
	for(i=2,j=n;i<=n/4+1;++i,--j)
		out<<i<<" "<<j<<" ";
	out<<"\n";
	out<<n/2<<"\n";
	for(;i<=j;++i,--j)
		out<<i<<" "<<j<<" ";
	out<<"\n";
}

void rest2(int n,ofstream &out){
	int i,j;
	out<<1<<"\n";
	out<<n/2+1<<"\n"<<n<<" ";
	for(i=1,j=n-2;i<=n/4;++i,--j)
		out<<i<<" "<<j<<" ";
	out<<"\n";
	out<<n/2+1<<"\n"<<n-1<<" ";
	for(;i<=j;++i,--j)
		out<<i<<" "<<j<<" ";
	out<<"\n";
}

void rest3(int n,ofstream &out){
	int i,j;
	out<<0<<"\n";
	out<<n/2+1<<"\n";
	for(i=1,j=n-1;i<=(n+1)/4;++i,--j)
		out<<i<<" "<<j<<" ";
	out<<"\n";
	out<<n/2<<"\n";
	for(;i<j;++i,--j)
		out<<i<<" "<<j<<" ";
	out<<n<<"\n";
}

int main(){
	ifstream in("multimi2.in");
	ofstream out("multimi2.out");
	int n;
	in>>n;
	in.close();
	if(n%4==0)
		rest0(n,out);
	if(n%4==1)
		rest1(n,out);
	if(n%4==2)
		rest2(n,out);
	if(n%4==3)
		rest3(n,out);
	out.close();
	return 0;
}