Cod sursa(job #1539909)

Utilizator FilestraffffDavid Filestra Filestraffff Data 1 decembrie 2015 19:43:25
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <algorithm>
#define nmax 500001
using namespace std;
int v[nmax];
void Ordoneaza(int s, int d) {
	if(d - s == 1) return ;
	int i = s, m = (s + d) >> 1, j = m, k = s;
	Ordoneaza(s, m);
	Ordoneaza(m, d);
	inplace_merge(v + s, v + m, v + d);
}
int main() {
	ifstream f("algsort.in");
	ofstream g("algsort.out");
	int n, i;
	bool sortd = true;
	f >> n >> v[0];
	for(i = 1; i < n; ++i) {
		f >> v[i];
		sortd = sortd && (v[i] >= v[i - 1]);
	}
	if(!sortd) Ordoneaza(0, n);
	for(i = 0; i < n; ++i)
		g << v[i] << " ";
	g << "\n";
	f.close();
	g.close();
	return 0;
}