Cod sursa(job #3309332)

Utilizator cosmin_90Drignei Cosmin-Cristian cosmin_90 Data 3 septembrie 2025 16:52:02
Problema Sortare prin comparare Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.24 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
vector<int> interclasare(vector<int> a,vector<int> b){
    vector<int> c;
    int poza=0,pozb=0;
    while(a.size()!=poza&&b.size()!=pozb){
        if(a[poza]>b[pozb]){
            c.push_back(b[pozb]);
            pozb++;
        }else{
            c.push_back(a[poza]);
            poza++;
        }
    }
    while(a.size()!=poza){
        c.push_back(a[poza]);
        poza++;
    }
    while(b.size()!=pozb){
        c.push_back(b[pozb]);
        pozb++;
    }
    return c;
}
vector<int> mergesort(vector<int> a){
    if(a.size()>1){
        vector<int> stv;
        vector<int> drv;
        for(int i=0;i<a.size()/2;i++){
            stv.push_back(a[i]);
        }
        for(int i=a.size()/2;i<a.size();i++){
            drv.push_back(a[i]);
        }
        return interclasare(mergesort(stv),mergesort(drv));
    }else{
        return a;
    }
}
long long int n;
vector<int> v;
int main(){
    fin>>n;
    for(int i=0;i<n;i++){
        int p;
        fin>>p;
        v.push_back(p);
    }
    v=mergesort(v);
    for(int i=0;i<v.size();i++){
        fout<<v[i]<<" ";
    }
    return 0;
}