#include<iostream>
using namespace std;
int pole[] = {3,42,13,41,12,4,58,23} ;
int pom[8];
void Mergesort(int zac, int kon) {
int stred, i, j, k;
stred = (zac + kon) / 2;
if (zac < stred) Mergesort(zac,stred);
if (stred + 1 < kon) Mergesort(stred+1, kon);
i = zac;
j = stred + 1;
k = zac;
while ((i <= stred) && (j <= kon)) {
if (pole[i] < pole[j]) pom[k] = pole[i++];
else {
if (pole[i] == pole[j]) {
if (pole[i] < pole[j]) pom[k] = pole[i++];
else pom[k] = pole[j++];
}
else pom[k] = pole[j++];
}
k++;
}
while (i <= stred) {
pom[k] = pole[i++];
k++;
}
while (j <= kon) {
pom[k] = pole[j++];
k++;
}
for (k = zac; k <= kon; k++) pole[k] = pom[k];
}
void main()
{
for(int j=0; j<8;j++)
cout<<pole[j]<<" ";
cout<<endl;
Mergesort(0,7);
for (int i=0; i<8; i++)
cout<<pole[i]<<" ";
cout<<endl;
}