Pagini recente » Cod sursa (job #2253751) | Rezultate Info Oltenia 2018 Proba Individuala | Cod sursa (job #2206781) | Cod sursa (job #3146470) | Cod sursa (job #1020598)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fi("algsort.in");
ofstream fo("algsort.out");
struct valori {
int nr,c;};
valori m[10000][9],v[10000];
int n;
bool ok;
void init() {
for (int i=1;i<=n;i++)
for (int j=0;j<=9;j++) {
m[i][j].nr=0;
m[i][j].c=0;
}
}
int main()
{
fi>>n;
for (int i=1;i<=n;i++) {
fi>>v[i].nr;
v[i].c=v[i].nr;
}
while (ok==0) {
init();
ok=1;
for (int i=1;i<=n;i++)
if (v[i].c!=0)
ok=0;
for (int i=1;i<=n;i++) {
int j=1;
while (m[j][v[i].c & 10].nr!=0)
j++;
m[j][v[i].c & 10].nr=v[i].nr;
m[j][v[i].c & 10].c=v[i].c/10;
}
int k=1;
for (int j=0;j<=9;j++) {
int i=1;
while (m[i][j].nr!=0) {
v[k]=m[i][j];
k++;
i++;
}
}
}
for (int i=1;i<=n;i++)
fo<<v[i].nr<<' ';
return 0;
}