Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.95 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.Stack;
  5.  
  6. public class Main2 {
  7.     public static void main(String[] args) throws IOException {
  8.         BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  9.         String str = in.readLine();
  10.         int n = Integer.parseInt(str);
  11.         String[] input = new String[n];
  12.         int[] numbers = new int[n];
  13.         for (int i = 0; i < n; i++) {
  14.             input[i] = in.readLine();
  15.             numbers[i] = Integer.parseInt(input[i].replaceAll("[^0-9]", ""));
  16.         }
  17.         Stack<Integer> nested = new Stack<>();
  18.         StringBuilder stringBuilder = new StringBuilder();
  19.  
  20.         for (int i = 0; i < n; i++) {
  21.             if (nested.size()==0) {
  22.                 stringBuilder.append(String.format("<%s>\n", input[i]));
  23.                 nested.push(i);
  24.                 continue;
  25.             }
  26.             if (numbers[i] > numbers[i - 1]) {
  27.                 for (int j = 0; j < nested.size(); j++) stringBuilder.append(" ");
  28.                 stringBuilder.append(String.format("<%s>\n", input[i]));
  29.                 nested.push(i);
  30.             } else {
  31.                 while (nested.size()!=0 && numbers[nested.peek()] >= numbers[i]) {
  32.                     for (int h = 0; h < nested.size()-1; h++) stringBuilder.append(" ");
  33.                     stringBuilder.append(String.format("</%s>\n", input[nested.pop()]));
  34.                 }
  35.  
  36.                 for (int j = 0; j < nested.size(); j++) stringBuilder.append(" ");
  37.                 stringBuilder.append(String.format("<%s>\n", input[i]));
  38.                 nested.push(i);
  39.             }
  40.         }
  41.         while (!nested.isEmpty()) {
  42.             for (int h = 0; h < nested.size()-1; h++) stringBuilder.append(" ");
  43.             stringBuilder.append(String.format("</%s>\n", input[nested.pop()]));
  44.         }
  45.  
  46.         System.out.println(stringBuilder.toString());
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement