Cod sursa(job #3157570)

Utilizator Cezar211Popoveniuc Cezar Cezar211 Data 15 octombrie 2023 21:19:51
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>

using namespace std;

array<int, 500'000> a;
int n;

template<typename T>
void heapSort(span<T> v) {
    priority_queue<T, vector<T>, greater<>> q;
    ranges::for_each(v, [&q](T &p) {
        q.push(p);
    });
    ranges::for_each(v, [&q](T &num) {
        num = q.top();
        q.pop();
    });
}

void read();

void print();

int main() {
    read();
    heapSort(span(a.data(), n));
    print();
}

void print() {
    ofstream out("algsort.out");
    for_each(a.begin(), a.begin() + n, [&out](int x) {
        out << x << ' ';
    });
    out << '\n';
}

void read() {
    ifstream in("algsort.in");
    in >> n;
    for_each(a.begin(), a.begin() + n, [&in](int &x) {
        in >> x;
    });
}