QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#873253#3445. Numbers On a Treefernandes_queilaWA 75ms47148kbJava211.8kb2025-01-26 11:01:332025-01-26 11:01:33

Judging History

你现在查看的是最新测评结果

  • [2025-01-26 11:01:33]
  • 评测
  • 测评结果:WA
  • 用时:75ms
  • 内存:47148kb
  • [2025-01-26 11:01:33]
  • 提交

answer

import java.util.Scanner;

public class BinaryTree {
    static class TreeNode {
        int label;
        TreeNode left;
        TreeNode right;

        TreeNode(int label) {
            this.label = label;
            left = right = null;
        }
    }

    TreeNode root;

    void buildTree(int height) {
        int maxNode = (1 << (height + 1)) - 1;
        root = buildTreeRec(maxNode, height);
    }

    TreeNode buildTreeRec(int label, int level) {
        if (level < 0) {
            return null;
        }
        TreeNode node = new TreeNode(label);
        int leftLabel = label - (1 << level);
        int rightLabel = leftLabel + 1;

        node.left = buildTreeRec(leftLabel, level - 1);
        node.right = buildTreeRec(rightLabel, level - 1);
        return node;
    }

    int searchNode(String path) {
        TreeNode current = root;
        for (char move : path.toCharArray()) {
            if (move == 'L') {
                if (current.left != null) {
                    current = current.left;
                } else {
                    return -1;
                }
            } else if (move == 'R') {
                if (current.right != null) {
                    current = current.right;
                } else {
                    return -1;
                }
            }
        }
        return current.label;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        scanner.close();

        String[] parts = input.split(" ");
        int height = Integer.parseInt(parts[0]);
        String path = parts.length > 1 ? parts[1] : "";

        BinaryTree tree = new BinaryTree();
        tree.buildTree(height);
        int label = tree.searchNode(path);

        System.out.println(label);
    }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 75ms
memory: 47148kb

input:

3 LR

output:

4

result:

wrong answer 1st lines differ - expected: '11', found: '4'