Cod sursa(job #2076655)

Utilizator Andrei243Nitu Mandel Andrei Andrei243 Data 26 noiembrie 2017 21:37:20
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.23 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <limits.h>
#include <stack>
using namespace std;

stack<int> radix[10];
stack<int> vector_sort;
stack<int> vec2;
ofstream out("algsort.out");



int main()
{

        ifstream in("algsort.in");


        int n;
        in>>n;
        int x;
        int maxim=INT_MIN;
        for(int i=0; i<n; i++)
        {
            in>>x;
            vector_sort.push(x);
            if(x>maxim)maxim=x;
        }

        for(int i=1; maxim/i>0; i*=10)
        {

            int x;
            while(vector_sort.size())
            {
                x=vector_sort.top();
                vector_sort.pop();

                radix[(x/i)%10].push(x);
            }
            for(i=0; i<10; i++)
            {


                while(radix[i].size()>0)
                {
                    x=radix[i].top();
                    radix[i].pop();
                    vector_sort.push(x);
                }





            }



        }





while(vector_sort.size())
{
    int x=vector_sort.top();
    vec2.push(x);
    vector_sort.pop();


}

while(vec2.size()){

int x=vec2.top();
out<<x<<" ";
vec2.pop();

}
return 0;
}