2163: The Matrix
Result | TIME Limit | MEMORY Limit | Run Times | AC Times | JUDGE |
---|---|---|---|---|---|
3s | 8192K | 390 | 166 | Standard |
Consider this method to describe a binary tree:
- We name the root node 'A',that means All other's parent.
- If a node's name is s (s is a string), its left child node's (if there is one) name is sL, and its right child node's name is sR.
A / / / / AL AR / / ALR / / ALRLNow we give you some node's name in random order, can you give the preorder traversal of the tree?
Note: a preorder traversal is: for any node you have to print its own's name first, then traversal its left sub tree, and then its right sub tree. For the tree above, the preorder traversal is like this: A, AL, ALR, ALRL, AR
Input
There are several test cases. For each case, the first line is a integer n (0 < n <= 10000) which tell you how many nodes you'll have to read, followed by n strings, each is a node name.Output
Print the node names in preorder traversal, one name per line.Print a blink line after each test case.
Sample Input
5 AL AR ALRL ALR A 1 A
Sample Output
A AL ALR ALRL AR A
Problem Source: fafey
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string a[10000];
int n;
while(cin>>n)
{
for(int i=0;i<n;i++) cin>>a[i];
sort(a,a+n);
for(int i=0;i<n;i++) cout<<a[i]<<endl;
cout<<endl;
}
return 0;
}