Submission #1408311


Source Code Expand

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    void run() {
        Scanner scan = new Scanner(System.in);
        StringBuilder tree1 = new StringBuilder();
        StringBuilder tree2 = new StringBuilder();
        tree1.append(scan.next());
        tree2.append(scan.next());
        String tree = "";
        int index = 0;
        while (true) {
            if (index >= tree1.length() || index >= tree2.length())
                break;
            char c1 = tree1.charAt(index);
            char c2 = tree2.charAt(index);
            if (c1 == c2 || Character.isDigit(c1)) {
//                System.out.println("digit:" + Character.isDigit(c1) + " " + c1);
                if (Character.isDigit(c1)) {
                    String num1 = "";
                    String num2 = "";
                    num1 += c1;
                    num2 += c2;
                    while (Character.isDigit(tree1.charAt(index + 1))) {
                        num1 += tree1.charAt(index + 1);
                        tree1.deleteCharAt(index + 1);
                    }
                    while (Character.isDigit(tree2.charAt(index + 1))) {
                        num2 += tree2.charAt(index + 1);
                        tree2.deleteCharAt(index + 1);
                    }
                    int sum = Integer.parseInt(num1) + Integer.parseInt(num2);
                    tree += String.valueOf(sum);
                } else {
                    tree += c1;
                }
                index++;
            }
            else {
                int count = 0;
                if (c1 == '(') {
                    int c = 0;
                    while (count != 2) {
                        if (tree1.charAt(index) == '(')
                            c++;
                        else if (tree1.charAt(index) == ')') {
                            c--;
                            if (c == 0)
                                count++;
                        }
                        tree1.deleteCharAt(index);
                    }
                } else {
                    int c = 0;
                    while (count != 2) {
                        if (tree2.charAt(index) == '(')
                            c++;
                        else if (tree2.charAt(index) == ')') {
                            c--;
                            if (c == 0)
                                count++;
                        }
                        tree2.deleteCharAt(index);
                    }
                }
            }
//            System.out.println(tree1);
//            System.out.println(tree2);
//            System.out.println(tree);
        }
        System.out.println(tree);
    }

    public static void main(String[] args) {
        new Main().run();
    }
}

Submission Info

Submission Time
Task C - みさわさんの根付き木
User nonaka
Language Java8 (OpenJDK 1.8.0)
Score 100
Code Size 2916 Byte
Status AC
Exec Time 110 ms
Memory 25684 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 53
Set Name Test Cases
All 0_sample_0, 0_sample_1, 0_sample_2, 0_sample_3, 0_sample_4, 10_random_00, 10_random_01, 10_random_02, 10_random_03, 10_random_04, 10_random_05, 10_random_06, 10_random_07, 10_random_08, 10_random_09, 10_random_10, 10_random_11, 10_random_12, 10_random_13, 10_random_14, 10_random_15, 10_random_16, 10_random_17, 10_random_18, 10_random_19, 10_random_20, 10_random_21, 10_random_22, 10_random_23, 10_random_24, 10_random_25, 10_random_26, 10_random_27, 10_random_28, 10_random_29, 10_random_30, 10_random_31, 10_random_32, 10_random_33, 10_random_34, 10_random_35, 10_random_36, 10_random_37, 10_random_38, 10_random_39, 20_unbalanced_0, 20_unbalanced_1, 20_unbalanced_2, 20_unbalanced_3, 21_small_unbalanced_0, 21_small_unbalanced_1, 21_small_unbalanced_2, 21_small_unbalanced_3
Case Name Status Exec Time Memory
0_sample_0 AC 91 ms 19796 KB
0_sample_1 AC 91 ms 22996 KB
0_sample_2 AC 90 ms 19796 KB
0_sample_3 AC 93 ms 23124 KB
0_sample_4 AC 90 ms 18644 KB
10_random_00 AC 98 ms 21844 KB
10_random_01 AC 97 ms 21972 KB
10_random_02 AC 99 ms 21844 KB
10_random_03 AC 100 ms 23124 KB
10_random_04 AC 99 ms 22996 KB
10_random_05 AC 99 ms 22612 KB
10_random_06 AC 98 ms 19028 KB
10_random_07 AC 103 ms 23764 KB
10_random_08 AC 100 ms 20692 KB
10_random_09 AC 99 ms 20692 KB
10_random_10 AC 110 ms 23252 KB
10_random_11 AC 99 ms 22608 KB
10_random_12 AC 101 ms 21844 KB
10_random_13 AC 100 ms 21844 KB
10_random_14 AC 99 ms 20692 KB
10_random_15 AC 101 ms 20948 KB
10_random_16 AC 100 ms 23636 KB
10_random_17 AC 100 ms 23636 KB
10_random_18 AC 103 ms 19668 KB
10_random_19 AC 100 ms 20820 KB
10_random_20 AC 101 ms 23892 KB
10_random_21 AC 102 ms 20948 KB
10_random_22 AC 101 ms 21460 KB
10_random_23 AC 99 ms 20820 KB
10_random_24 AC 98 ms 22868 KB
10_random_25 AC 100 ms 22612 KB
10_random_26 AC 100 ms 19156 KB
10_random_27 AC 100 ms 22612 KB
10_random_28 AC 99 ms 21840 KB
10_random_29 AC 98 ms 23892 KB
10_random_30 AC 99 ms 23636 KB
10_random_31 AC 98 ms 23892 KB
10_random_32 AC 99 ms 21076 KB
10_random_33 AC 99 ms 23764 KB
10_random_34 AC 99 ms 21972 KB
10_random_35 AC 98 ms 21588 KB
10_random_36 AC 97 ms 21844 KB
10_random_37 AC 98 ms 21844 KB
10_random_38 AC 99 ms 23892 KB
10_random_39 AC 99 ms 20820 KB
20_unbalanced_0 AC 99 ms 23892 KB
20_unbalanced_1 AC 93 ms 19668 KB
20_unbalanced_2 AC 98 ms 19412 KB
20_unbalanced_3 AC 102 ms 25300 KB
21_small_unbalanced_0 AC 109 ms 23380 KB
21_small_unbalanced_1 AC 97 ms 21844 KB
21_small_unbalanced_2 AC 97 ms 21588 KB
21_small_unbalanced_3 AC 101 ms 25684 KB