Cod sursa(job #1020598)

Utilizator WyvernFMI Stanescu Leonard Wyvern Data 2 noiembrie 2013 12:30:29
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#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;
}