Cod sursa(job #1976652)

Utilizator bleo16783FMI Bleotiu Cristian bleo16783 Data 3 mai 2017 22:20:08
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include <iostream>
#include<fstream>
#include<cstring>
using namespace std;
struct trie
{
    short nr;
    trie* v[10];
    trie()
    {
        nr=0;
        for(int i=0;i<10;++i)
            this->v[i]=NULL;
    }
}*r[20];
char s[30];
int i,j,n;
inline void ad(char s[])
{
    int k=strlen(s),i=0;
    trie *p=r[k];
    while(p->v[ s[i] - '0' ]!=NULL && i<k)
    {
        p=p->v[ s[i] - '0' ];
        ++i;
    }
    while(i<k)
    {
        p->v[ s[i] - '0' ]=new trie;
        p=p->v[ s[i] - '0' ];
        ++i;
    }
    p->nr++;
}
ofstream g("algsort.out");
void showtime(trie *root,int dim,int l)
{
    if(dim>l)
    {
        for(int i=0;i<root->nr;++i)
            g<<s<<" ";
        return ;
    }
    for(int i=0;i<10;++i)
        if(root->v[i]!=NULL)
    {
        s[dim-1]=i+'0';
        showtime(root->v[i],dim+1,l);
    }
}
int main()
{
    ifstream f("algsort.in");
    f>>n;
    for(i=1;i<11;++i)r[i]=new trie;
    for(i=0;i<n;++i)
    {
        f>>s;
        ad(s);
    }
    memset(s,0,30);
    for(i=1;i<11;++i)
        showtime(r[i],1,i);
    return 0;
}