Pagini recente » Cod sursa (job #3335102) | Borderou de evaluare (job #3346634) | Cod sursa (job #2578166) | Cod sursa (job #3356973) | Cod sursa (job #3335299)
use std::error::Error;
use std::io::Write;
macro_rules! make_buff_fio {
(r, $file_name:literal) => {
std::io::BufReader::new(std::fs::File::open($file_name)?)
};
(w, $file_name:literal) => {
std::io::BufWriter::new(std::fs::File::create($file_name)?)
};
}
fn main() -> Result<(), Box<dyn Error>> {
let mut buf_reader = make_buff_fio!(r, "algsort.in");
let mut buf_writer = make_buff_fio!(w, "algsort.out");
macro_rules! read_buff_io {
($count:ident) => {{
use std::io::BufRead;
let mut line = String::new();
buf_reader.read_line(&mut line)?;
let mut v = Vec::with_capacity($count as usize);
let mut line_it = line.split_whitespace();
for _ in 0..$count {
v.push(line_it.next().unwrap().parse()?);
}
v
}};
($count:literal) => {{
let _count = $count;
read_buff_io!(_count)
}};
}
let n: u32 = read_buff_io!(1)[0];
let mut v: Vec<u32> = read_buff_io!(n);
v.sort();
for val in &v {
write!(buf_writer, "{} ", *val)?;
}
Ok(())
}