Cod sursa(job #3030983)

Utilizator TirilaPatricTirila Patric-Gabriel TirilaPatric Data 18 martie 2023 10:21:51
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

vector<int> sortare(vector<int> V){
    vector<vector<int>> bins(10);
    long i = 1;
    int n;
    int ok = 1;
    while(ok){
        ok = 0;
        for(int j=0; j<10; j++){
            bins[j] = {};
        }
        for(int j=0; j<V.size(); j++){
            if ((V[j]/i) > 9) {
                ok = 1;
            }
            n = (V[j]/i) % 10;
            bins[n].push_back(V[j]);
        }
        V.clear();
        for(int j=0; j<bins.size(); j++){
            for(int k=0; k<bins[j].size(); k++){
                V.push_back(bins[j][k]);
            }
        }
        i*=10;
    }
    return V;
}

int main(){
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    vector<int> V;
    int a, N;
    f>>N;
    while(N>0){
        f>>a;
        V.push_back(a);
        N--;
    }
    V = sortare(V);
    for(long unsigned int i=0; i<V.size(); i++){
        g<<V[i]<<" ";
    }
    return 0;
}