Cod sursa(job #2911429)

Utilizator db_123Balaban David db_123 Data 29 iunie 2022 14:13:45
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");

/// MULT NOROC LA COPIERE ;)

int n;
vector<int> v;
void read(){cin>>n;
    v.resize(n+1);for(int i=1;i<=n;i++){cin>>v[i];}}
void merge(int l,int r){if(l==r){return;}int mid=(l+r)/2;merge(l,mid);merge(mid+1,r);
    vector<int> c;int p1=l,p2=mid+1;while(p1<=mid && p2<=r){if(v[p1]<v[p2]){c.push_back(v[p1]);p1++;}else{c.push_back(v[p2]);p2++;}}while(p1<=mid){c.push_back(v[p1]);p1++;}while(p2<=r){c.push_back(v[p2]);p2++;}for(int i=l;i<=r;i++){v[i]=c[i-l];}}
void solve(){merge(1,n);
    for(int i=1;i<=n;i++){cout<<v[i]<<" ";}}
int main(){
read();solve();return 0;}