Pagini recente » Rating Andrei Manolachi (Andrei7) | Cod sursa (job #2960494) | Cod sursa (job #3289563) | Cod sursa (job #2468946) | Cod sursa (job #2380415)
#include <bits/stdc++.h>
#include <unordered_set>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n, x;
vector<int> v;
void merge(vector<int> &v, int left, int right)
{
int mid = left + (right - left) / 2;
vector<int> merged;
int i = left, j = mid + 1;
while (i <= mid || j <= right)
if (i > mid)
merged.push_back(v[j++]);
else
if (j > right)
merged.push_back(v[i++]);
else
if (v[i] <= v[j])
merged.push_back(v[i++]);
else
merged.push_back(v[j++]);
for (int i = 0; i < merged.size(); ++i)
v[left + i] = merged[i];
}
void sort(vector<int> &v, int left, int right)
{
if (left >= right)
return;
int mid = left + (right - left) / 2;
sort(v, left, mid);
sort(v, mid + 1, right);
merge(v, left, right);
}
int main()
{
f >> n;
while (n--)
f >> x,
v.push_back(x);
sort(v, 0, v.size() - 1);
for (auto x : v)
g << x << ' ';
return 0;
}