Cod sursa(job #1540619)

Utilizator justsomedudePalade Thomas-Emanuel justsomedude Data 2 decembrie 2015 23:09:52
Problema Multimi2 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.92 kb
#include<iostream>
#include<fstream>

using namespace std;

ifstream fin ("multimi2.in");
ofstream fout ("multimi2.out");

int n;

void First_case()
{
   int i;
   fout << "0\n";        /// diferenta minima intre multimile formate e 0

   fout << n/2 <<"\n";          /// numarul de elemente
   for (i=1; i<n/2; i=i+2)
      fout << i << " ";

   for (i=n; i>n/2; i=i-2)
      fout << i << " ";

   fout <<"\n" << n/2 << "\n";          /// numarul de elemente
   for (i=2; i<=n/2; i=i+2)
      fout << i << " ";

   for (i=n-1; i>=n/2; i=i-2)
      fout << i << " ";
}

void Second_case()
{
   int i;
   fout << "1\n";

   fout << (n/2+1) << "\n";

   fout << "1 " << n-1 << " ";

   for (i=2; i<n/2; i=i+2)
      fout << i << " " << n-i << " ";

   fout << (n/2) << "\n";

   fout << n - n/2-1 << "\n";

   fout << n << " " << (n/2+1) << " ";

   for (i=3; i<n/2; i=i+2)
      fout << i << " " << n-i << " ";

   fout << "\n";
}

void Third_case()
{
   int i;
   fout << "1\n";

   fout << n/2 << "\n";

   for (i=1; i<n/2; i=i+2)
      fout << i << " " << n-i+1 << " ";

   fout << (n/2) << "\n";

   fout << n/2 << "\n"; /// numarul de elemente din b

   fout << (n/2+1) << " ";

   for (i=2; i<n/2; i=i+2)
      fout << i << " " << n-i+1 << " ";

}

void Fourth_case()
{
   int i;
   if (n == 3) fout << "0\n";
   else fout << "1\n";

   fout << (n/2+1) << "\n";

   fout << "1 " << n-1 << " ";

   for (i=2; i<=n/2; i=i+2)
      fout << i << " " << n-i << " ";

   fout << "\n" << n/2 << "\n";

   fout << n << " ";

   for (i=3; i<=n/2; i=i+2)
      fout << i << " " << n-i << " ";

   fout << "\n";
}

void Rezolva()
{
   fin >> n;
   if (n%4 == 0) First_case();
   else if (n%4 == 1) Second_case();
   else if (n%4 == 2) Third_case();
   else               Fourth_case();
}

int main ()
{
  Rezolva();
  fin.close();
  fout.close();
  return 0;
}