Pagini recente » Cod sursa (job #1398349) | Cod sursa (job #2252070) | Cod sursa (job #2909555) | Cod sursa (job #1949978) | Cod sursa (job #1076655)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
#define maxN 500005
vector <int> g[10];
int v[maxN];
unsigned n,m,i,j,k;
int main()
{
int x,ord,maxim,nr;
in>>n;
for(i=0; i<n ;i++)
{
in>>x;
v[i]=x;
}
maxim=*max_element(v,v+n);
m=0;
while(maxim)
{
m++;
maxim=maxim/10;
}
ord=1;
for(k=1; k<=m ;k++)
{
for(i=0; i<n ;i++)
{
g[v[i]/ord%10].push_back(v[i]);
}
nr=0;
for(i=0; i<=9 ;i++)
{
for(j=0; j<g[i].size() ;j++)
{
v[nr]=g[i][j];
nr++;
}
g[i].clear();
}
ord=ord*10;
}
for(i=0; i<n ;i++)
out<<v[i]<<" ";
return 0;
}
/*for(i=0; i<=9 ;i++)
{
cout<<"\n Galeata "<<i<<": ";
if(g[i].size())
{
for(j=0; j<g[i].size() ;j++)
{
cout<<g[i][j]<<" ";
}
}
else cout<<" nu contine nimic !";
}*/
/*void print(int pas)
{
int x;
cout<<"\n Vectorul la pasul "<<pas<<": ";
for(i=0; i<n ;i++)
{
x=v.at(i);
cout<<x<<" ";
}
}*/