Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.Stack;
- public class Main2 {
- public static void main(String[] args) throws IOException {
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
- String str = in.readLine();
- int n = Integer.parseInt(str);
- String[] input = new String[n];
- int[] numbers = new int[n];
- for (int i = 0; i < n; i++) {
- input[i] = in.readLine();
- numbers[i] = Integer.parseInt(input[i].replaceAll("[^0-9]", ""));
- }
- Stack<Integer> nested = new Stack<>();
- StringBuilder stringBuilder = new StringBuilder();
- for (int i = 0; i < n; i++) {
- if (nested.size()==0) {
- stringBuilder.append(String.format("<%s>\n", input[i]));
- nested.push(i);
- continue;
- }
- if (numbers[i] > numbers[i - 1]) {
- for (int j = 0; j < nested.size(); j++) stringBuilder.append(" ");
- stringBuilder.append(String.format("<%s>\n", input[i]));
- nested.push(i);
- } else {
- while (nested.size()!=0 && numbers[nested.peek()] >= numbers[i]) {
- for (int h = 0; h < nested.size()-1; h++) stringBuilder.append(" ");
- stringBuilder.append(String.format("</%s>\n", input[nested.pop()]));
- }
- for (int j = 0; j < nested.size(); j++) stringBuilder.append(" ");
- stringBuilder.append(String.format("<%s>\n", input[i]));
- nested.push(i);
- }
- }
- while (!nested.isEmpty()) {
- for (int h = 0; h < nested.size()-1; h++) stringBuilder.append(" ");
- stringBuilder.append(String.format("</%s>\n", input[nested.pop()]));
- }
- System.out.println(stringBuilder.toString());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement