| Task: | Company Queries II |
| Sender: | aalto26gh_011 |
| Submission time: | 2026-10-17 19:03:03 +0300 |
| Language: | Rust (2021) |
| Status: | READY |
| Result: | WRONG ANSWER |
| test | verdict | time | |
|---|---|---|---|
| #1 | WRONG ANSWER | 0.00 s | details |
| #2 | WRONG ANSWER | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | WRONG ANSWER | 0.00 s | details |
| #5 | WRONG ANSWER | 0.00 s | details |
| #6 | WRONG ANSWER | 0.55 s | details |
| #7 | ACCEPTED | 0.76 s | details |
| #8 | WRONG ANSWER | 0.74 s | details |
| #9 | WRONG ANSWER | 0.70 s | details |
| #10 | WRONG ANSWER | 0.70 s | details |
| #11 | WRONG ANSWER | 0.00 s | details |
| #12 | WRONG ANSWER | 0.67 s | details |
Code
#![allow(unused)]
use std::io;
fn take_tuple() -> (usize, usize) {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let mut it = input
.trim()
.split_whitespace()
.map(|x| x.parse::<usize>().unwrap());
(it.next().unwrap(), it.next().unwrap())
}
fn take_vector() -> Vec<usize> {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let arr: Vec<usize> = input
.trim()
.split_whitespace()
.map(|x| x.parse::<usize>().unwrap())
.collect();
return arr;
}
fn main() {
let (n, q): (usize, usize) = take_tuple();
let mut vec = take_vector();
let max_tree: usize = usize::max(n.next_power_of_two().ilog2() as usize, 1);
let mut ancestors: Vec<Vec<usize>> = vec![Vec::with_capacity(n + 1); max_tree];
ancestors[0].push(0);
ancestors[0].push(1);
ancestors[0].append(&mut vec);
for k in 1..max_tree {
for e in 0..n + 1 {
let b_1 = ancestors[k - 1][e];
let b_2 = ancestors[k - 1][b_1];
ancestors[k].push(b_2);
}
}
let mut depths: Vec<usize> = Vec::with_capacity(n + 1);
depths.push(0);
depths.push(1);
for i in 2..ancestors[0].len() {
depths.push(depths[ancestors[0][i]] + 1);
}
for _ in 0..q {
let (mut a, mut b) = take_tuple();
if depths[a] < depths[b] {
std::mem::swap(&mut a, &mut b);
}
let d = depths[a] - depths[b];
for i in 0..ancestors.len() {
if (d >> i) & 1 == 1 {
a = ancestors[i][a];
}
}
if a == b {
println!("{}", ancestors[0][a]);
continue;
}
for i in (0..ancestors.len()).rev() {
if ancestors[i][a] != ancestors[i][b] {
a = ancestors[i][a];
b = ancestors[i][b];
}
}
println!("{}", ancestors[0][a]);
}
}
Test details
Test 1
Verdict: WRONG ANSWER
| input |
|---|
| 10 10 1 2 3 4 5 6 7 8 9 6 9 8 10 10 3 ... |
| correct output |
|---|
| 6 8 3 1 8 ... |
| user output |
|---|
| 5 7 2 1 7 ... |
Feedback: Incorrect character on line 1 col 1: expected "6", got "5"
Test 2
Verdict: WRONG ANSWER
| input |
|---|
| 10 10 1 1 1 1 1 1 1 1 1 1 7 3 4 4 1 ... |
| correct output |
|---|
| 1 1 1 1 1 ... |
| user output |
|---|
| 1 1 1 1 1 ... |
Feedback: Incorrect character on line 7 col 1: expected "4", got "1"
Test 3
Verdict: ACCEPTED
| input |
|---|
| 10 10 1 1 1 1 2 3 4 4 1 1 8 2 7 8 3 ... |
| correct output |
|---|
| 1 1 1 1 1 ... |
| user output |
|---|
| 1 1 1 1 1 ... |
Test 4
Verdict: WRONG ANSWER
| input |
|---|
| 10 10 1 1 3 1 2 2 5 3 9 7 2 7 6 3 9 ... |
| correct output |
|---|
| 2 2 3 1 1 ... |
| user output |
|---|
| 1 2 1 1 1 ... |
Feedback: Incorrect character on line 1 col 1: expected "2", got "1"
Test 5
Verdict: WRONG ANSWER
| input |
|---|
| 10 10 1 2 3 2 5 3 2 2 4 6 1 1 3 1 9 ... |
| correct output |
|---|
| 1 1 1 2 2 ... |
| user output |
|---|
| 1 1 1 2 2 ... |
Feedback: Incorrect character on line 6 col 1: expected "3", got "2"
Test 6
Verdict: WRONG ANSWER
| input |
|---|
| 200000 200000 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| correct output |
|---|
| 74862 8750 16237 72298 58111 ... |
| user output |
|---|
| 74861 8749 16236 72297 58110 ... |
Feedback: Incorrect character on line 1 col 5: expected "74862", got "74861"
Test 7
Verdict: ACCEPTED
| input |
|---|
| 200000 200000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| correct output |
|---|
| 1 1 1 1 1 ... |
| user output |
|---|
| 1 1 1 1 1 ... |
Test 8
Verdict: WRONG ANSWER
| input |
|---|
| 200000 200000 1 2 1 2 3 2 1 6 3 1 10 12 13 4... |
| correct output |
|---|
| 1 2 2 2 1 ... |
| user output |
|---|
| 1 2 2 2 1 ... |
Feedback: Incorrect character on line 58834 col 1: expected "8579", got "4799"
Test 9
Verdict: WRONG ANSWER
| input |
|---|
| 200000 200000 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| correct output |
|---|
| 2796 633 633 151 2690 ... |
| user output |
|---|
| 2796 633 633 151 2690 ... |
Feedback: Incorrect character on line 18 col 6: expected "121036", got "121035"
Test 10
Verdict: WRONG ANSWER
| input |
|---|
| 200000 200000 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| correct output |
|---|
| 365 73 103 365 216 ... |
| user output |
|---|
| 365 73 103 365 216 ... |
Feedback: Incorrect character on line 117 col 4: expected "5249", got "5248"
Test 11
Verdict: WRONG ANSWER
| input |
|---|
| 2 4 1 1 1 1 2 2 1 ... |
| correct output |
|---|
| 1 1 1 2 |
| user output |
|---|
| 1 1 1 1 |
Feedback: Incorrect character on line 4 col 1: expected "2", got "1"
Test 12
Verdict: WRONG ANSWER
| input |
|---|
| 200000 200000 1 1 2 3 4 5 6 7 8 9 10 11 12 1... |
| correct output |
|---|
| 27468 6353 27468 6353 6353 ... |
| user output |
|---|
| 27468 6353 27468 6353 6353 ... |
Feedback: Incorrect character on line 8 col 5: expected "130189", got "130178"
