Pagini recente » Cod sursa (job #2587689) | Cod sursa (job #1014177) | Cod sursa (job #2637273) | Cod sursa (job #2621595) | Cod sursa (job #1022020)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fi("algsort.in");
ofstream fo("algsort.out");
struct valori {
int nr,c;};
valori m[500002][10],x[500002][10];
int n,k;
bool ok;
int main()
{
fi>>n;
for (int i=1;i<=n;i++) {
int j=1;
fi>>k;
while (m[j][k % 10].nr!=0)
j++;
m[j][k % 10].nr=k;
m[j][k % 10].c=k;
}
while (ok==0) {
ok=1;
for (int j=0;j<=10;j++) {
int i=1;
while (x[i][j].nr!=0) {
x[i][j].nr=0;
x[i][j].c=0;
i++;
}
}
for (int j=0;j<=9;j++) {
int i=1;
while (m[i][j].nr!=0) {
if (m[i][j].c>0)
ok=0;
k=1;
while (x[k][m[i][j].c % 10].nr!=0)
k++;
x[k][m[i][j].c % 10].nr=m[i][j].nr;
x[k][m[i][j].c % 10].c=m[i][j].c/10;
m[i][j].nr=0;
m[i][j].c=0;
i++;
}
}
for (int j=0;j<=10;j++) {
int i=1;
while (x[i][j].nr!=0) {
m[i][j]=x[i][j];
i++;
}
}
}
for (int j=0;j<=10;j++) {
int i=0;
while (m[i][j].nr!=0) {
fo<<m[i][j].nr<<' ';
i++;
}
}
return 0;
}