Cod sursa(job #1567447)

Utilizator veleanduAlex Velea veleandu Data 13 ianuarie 2016 12:02:21
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <vector>
using namespace std;

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

#define cin fin
#define cout fout

int main() {
	int n; cin >> n;
	vector<int> el(n, 0);
	for (int i = 0; i < n; i += 1) {
		cin >> el[i];
	}

	for (int step = 0; ; step += 1) {
		if (step == n) {
			step = 0;
			bool ok = true;
			for (int i = 0; i + 1 < n; i += 1) {
				ok = ok & (el[i] <= el[i + 1]);
			}

			if (ok) {
				for (int i = 0; i < n; i += 1) {
					cout << el[i] << ' ';
				}
				exit(0);
			}
		}

		int st = rand() % n, dr = rand() % n;
		if (st > dr) {
			swap(st, dr);
		}

		if (el[st] > el[dr]) {
			swap(el[st], el[dr]);
		}
	}
	return 0;
}