Pagini recente » Cod sursa (job #2243906) | Cod sursa (job #91152) | Cod sursa (job #844015) | Cod sursa (job #1682742) | Cod sursa (job #3228744)
use std::{collections::BinaryHeap, fs::File, io::{BufRead, BufReader, BufWriter, Write}};
fn main() {
let mut input_file = BufReader::new(File::open("sdo.in").unwrap());
let mut first_line = String::new();
let mut second_line = String::new();
let _ = input_file.read_line(&mut first_line).unwrap();
let _ = input_file.read_line(&mut second_line).unwrap();
let (n, k) = first_line.trim().split_once(' ').unwrap();
let _n = n.parse::<usize>().unwrap();
let k = k.parse::<usize>().unwrap();
let limit = k;
let mut heap = BinaryHeap::with_capacity(limit);
for num in second_line.trim().split(' ') {
let num = num.parse::<u32>().unwrap();
if heap.len() == limit && *heap.peek().unwrap() > num {
heap.pop();
}
if heap.len() < limit {
heap.push(num);
}
}
let mut output_file = BufWriter::new(File::create("sdo.out").unwrap());
let _ = writeln!(output_file, "{}", heap.pop().unwrap()).unwrap();
}