Pagini recente » Cod sursa (job #2965534) | Cod sursa (job #3287301)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
using pii = pair<int,int>;
const int nmax = 5e5 + 1;
vector <pii> d[2];
pii v[nmax];
signed main()
{
int n , x , idx;
cin >> n;
for(int i = 1 ; i <= n ; ++i){
cin >> x;
v[i] = make_pair(x,x);
}
for(int lv = 1 ; lv <= 31 ; ++lv){
for(int i = 1 ; i <= n ; ++i)
d[v[i].first%2].push_back(v[i]);
idx = 0;
for(int i = 0 ; i <= 1 ; ++i){
for(auto pr : d[i]){
pr.first>>=1;
v[++idx] = pr;
}
d[i].clear();
}
}
for(int i = 1 ; i <= n ; ++i) cout << v[i].second << ' ';
return 0;
}