I try to submit my code , but code chief didn’t accept , I past my solution as well, according to me my solution is correct , please help me find issue in my solution.
use std::io;
struct Solution();
impl Solution {
//pub fn generate_trees(n: u32) -> Vec<Option<Rc<RefCell<TreeNode>>>> {}
pub fn sol(n: u32, arr: &mut Vec<u32>) {
arr.sort_by(|a, b| b.cmp(&a));
if arr[0] == arr[1] {
print!("No");
return;
}
let mut idx: usize = 1;
let mut last_ele: u32 = arr[0];
let mut count: u32 = 0;
let mut left: Vec<u32> = vec![];
let mut right: Vec<u32> = vec![];
while (idx as u32) < n {
if arr[idx] == last_ele {
count += 1;
right.push(arr[idx]);
} else {
left.push(arr[idx]);
count = 1;
}
if count == 3 {
print!("No");
return;
}
last_ele = arr[idx];
idx += 1;
}
println!("Yes");
if right.len() == 0 && left.len() > 1 {
right.push(left.pop().expect(""));
}
for ele in left.into_iter().rev() {
print!("{} ", ele);
}
print!("{}", arr[0]);
for ele in right.into_iter() {
print!(" {}", ele);
}
//eprintln!("left => {:?}", left);
//eprintln!("right => {:?}", right);
}
}
fn input() {
let mut inp = String::new();
io::stdin().read_line(&mut inp).unwrap();
let num: u32 = inp.trim().parse().expect("");
inp.clear();
io::stdin().read_line(&mut inp).unwrap();
let mut arr: Vec<u32> = inp
.trim()
.split_whitespace()
.map(|x| x.parse().expect(""))
.collect();
Solution::sol(num, &mut arr);
}
fn main() {
let mut inp = String::new();
io::stdin().read_line(&mut inp).unwrap();
let test: usize = inp.trim().parse().unwrap();
for _ in 0..test {
input();
println!("");
}
}