Pagini recente » Cod sursa (job #2744805) | Cod sursa (job #2641553) | Cod sursa (job #2596527) | Cod sursa (job #1811442) | Cod sursa (job #1256467)
# include <fstream>
# include <list>
using namespace std;
ifstream in ( "algsort.in" ) ;
ofstream out ( "algsort.out" ) ;
int n , v [ 500001 ] , maximum = - 1 << 30 ;
void radix ( ) {
list < int > rlist [ 10 ] ;
for ( int p = 1 ; p <= maximum ; p *= 10 ) {
for ( int i = 1 ; i <= n ; ++ i ) {
rlist [ ( v [ i ] / p ) % 10 ] . push_back ( v [ i ] ) ;
}
for ( int c = 0 , i = 1 ; c <= 9 ; rlist [ c ++ ] . clear ( ) ) {
for ( list < int > :: iterator j = rlist [ c ] . begin ( ) ; j != rlist [ c ] . end ( ) ; v [ i ++ ] = * ( j ++ ) ) ;
}
}
}
int main() {
in >> n ;
for ( int i = 1 ; i <= n ; i ++ ) {
in >> v [ i ] ;
maximum = maximum > v [ i ] ? maximum : v [ i ] ;
}
radix ( ) ;
for ( int i = 1 ; i <= n ; out << v [ i ++ ] << " " ) ;
return 0;
}