Pagini recente » Cod sursa (job #1164666) | Cod sursa (job #868588) | Cod sursa (job #268347) | Cod sursa (job #2030555) | Cod sursa (job #1135752)
#include <stdio.h>
#include <fstream>
#include <stdlib.h>
#include <math.h>
#include <algorithm>
#include <assert.h>
#include <time.h>
#include <string.h>
#include <vector>
using namespace std;
void cit (int *n, unsigned int **v)
{
scanf ("%d", n);
*v = (unsigned int*) malloc (sizeof(unsigned int) * *n);
for (int i = 0; i < *n; i++)
scanf ("%u", *v + i);
}
void rec (unsigned int *v, int left, int right)
{
if (left >= right) return;
int l1 = left, r1 = right;
bool dir = 0;
while (left < right)
{
if (v[left] > v[right])
{
swap (v[left], v[right]);
dir = dir ^ 1;
}
if (dir)
left++;
else
right--;
}
rec (v, l1, left-1);
rec (v, right+1, r1);
}
void afi (int n, unsigned int **v)
{
for (int i = 0; i < n; i++)
printf ("%u ", (*v)[i]);
}
int main ()
{
freopen ("algsort.in", "r", stdin);
freopen ("algsort.out", "w", stdout);
int n;
unsigned int *v;
cit (&n, &v);
rec (v, 0, n-1);
afi (n, &v);
fclose (stdin);
fclose (stdout);
return 0;
}