QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#873253 | #3445. Numbers On a Tree | fernandes_queila | WA | 75ms | 47148kb | Java21 | 1.8kb | 2025-01-26 11:01:33 | 2025-01-26 11:01:33 |
Judging History
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'