Cod sursa(job #296636)

Utilizator bacerandreiBacer Andrei bacerandrei Data 4 aprilie 2009 23:09:24
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.27 kb
#include <fstream.h>

long long n , i , ct1 , ct2;


int main()
{
  ifstream f("multimi2.in");
  ofstream g("multimi2.out");
   f>>n;
    if(n == 2)
     {
       g<<"1"<<"\n";
       g<<"1"<<"\n"<<"1"<<"\n";
       g<<"1"<<"\n"<<"2";
     }
    else
     {
    if(n == 3)
     {
       g<<"0"<<"\n";
       g<<"2"<<"\n"<<"1 2"<<"\n";
       g<<"1"<<"\n"<<"3";
     }
    }
    if(n != 2 && n != 3)
    {
      if(n%4 == 0)
       {
	 g<<"0"<<"\n";
	  g<<n/2<<"\n";
	   ct1 = 1 ; ct2 = 4;
	  g<<ct1<<" "<<ct2<<" ";
	     while(ct1+4 <= n && ct2+4 <= n)
	      {
		ct1 = ct1 + 4;
		ct2 = ct2 + 4;
	       g<<ct1<<" "<<ct2<<" ";
	      }
	  g<<"\n";
	 g<<n/2<<"\n";
	   ct1 = 2 ; ct2 = 3;
	 g<<ct1<<" "<<ct2<<" ";
	    while(ct1+4 <=n && ct2+4 <= n)
	     {
	       ct1 = ct1 + 4;
		ct2 = ct2 + 4;
	       g<<ct1<<" "<<ct2<<" ";
	     }
       }
       if(n%4 == 1)
	{
	  g<<"1"<<"\n";
	  g<<(n/2+1)<<"\n"<<"1 ";
	   ct1 = 2 ; ct2 = 5;
	  g<<ct1<<" "<<ct2<<" ";
	     while(ct1+4 <= n && ct2+4 <= n)
	      {
		ct1 = ct1 + 4;
		ct2 = ct2 + 4;
	       g<<ct1<<" "<<ct2<<" ";
	      }
	  g<<"\n";
	 g<<n/2<<"\n";
	   ct1 = 3 ; ct2 = 4;
	 g<<ct1<<" "<<ct2<<" ";
	    while(ct1+4 <=n && ct2+4 <= n)
	     {
	       ct1 = ct1 + 4;
		ct2 = ct2 + 4;
	       g<<ct1<<" "<<ct2<<" ";
	     }
       }
       if(n%4 == 2)
	{
	  g<<"1"<<"\n";
	  g<<n/2<<"\n"<<"1 ";
	   ct1 = 3 ; ct2 = 6;
	  g<<ct1<<" "<<ct2<<" ";
	     while(ct1+4 <= n && ct2+4 <= n)
	      {
		ct1 = ct1 + 4;
		ct2 = ct2 + 4;
	       g<<ct1<<" "<<ct2<<" ";
	      }
	  g<<"\n";
	 g<<n/2<<"\n"<<"2 ";
	   ct1 = 4 ; ct2 = 5;
	 g<<ct1<<" "<<ct2<<" ";
	    while(ct1+4 <=n && ct2+4 <= n)
	     {
	       ct1 = ct1 + 4;
		ct2 = ct2 + 4;
	       g<<ct1<<" "<<ct2<<" ";
	     }
       }
       if(n%4 == 3)
	{
	  g<<"0"<<"\n";
	  g<<(n/2+1)<<"\n"<<"1 2 ";
	   ct1 = 4 ; ct2 = 7;
	  g<<ct1<<" "<<ct2<<" ";
	     while(ct1+4 <= n && ct2+4 <= n)
	      {
		ct1 = ct1 + 4;
		ct2 = ct2 + 4;
	       g<<ct1<<" "<<ct2<<" ";
	      }
	  g<<"\n";
	 g<<n/2<<"\n"<<"3 ";
	   ct1 = 5 ; ct2 = 6;
	 g<<ct1<<" "<<ct2<<" ";
	    while(ct1+4 <=n && ct2+4 <= n)
	     {
	       ct1 = ct1 + 4;
		ct2 = ct2 + 4;
	       g<<ct1<<" "<<ct2<<" ";
	     }
       }
    }
 return 0;
}