Pagini recente » Cod sursa (job #1889241) | Cod sursa (job #3266448) | Cod sursa (job #1475828) | Cod sursa (job #2329599) | Cod sursa (job #177199)
Cod sursa(job #177199)
#include <stdio.h>
#include <algorithm>
#include <vector>
using namespace std;
struct node
{
char key;
node *l, *r;
} *T;
char S[65536];
vector < pair<int, int> > V;
void insert(node *&n, char c)
{
if (n == NULL)
{
n = new node;
n->key = c;
n->l = n->r = NULL;
return;
}
if (c <= n->key)
insert(n->l, c);
else
insert(n->r, c);
}
void DFS(node *n, int lev = 0)
{
if (n == NULL) return;
V.push_back(make_pair(-lev, n->key));
DFS(n->l, lev+1);
DFS(n->r, lev+1);
}
void clear(node *&n)
{
if (n == NULL) return;
clear(n->l);
clear(n->r);
delete n;
n = NULL;
}
int main(void)
{
int i, j;
freopen("date.in", "rt", stdin);
freopen("date.out", "wt", stdout);
for (i = 0; i < 5; ++i)
{
scanf("%s", S);
clear(T);
for (j = 0; j < strlen(S); ++j)
insert(T, S[j]);
V.clear();
DFS(T);
sort(V.begin(), V.end());
for (j = 0; j < V.size(); ++j)
printf("%c", V[j].second);
printf("/n");
}
return 0;
}