Pagini recente » Borderou de evaluare (job #1568766) | Cod sursa (job #3325965) | Cod sursa (job #3314972) | Cod sursa (job #2549566) | Cod sursa (job #3335100)
use std::{
error::Error, fmt::Display, fs::File, io::{BufRead, BufReader, BufWriter, Write}
};
struct MyStruct(Vec<u32>);
impl Display for MyStruct {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let mut s = String::new();
for val in self.0.iter() {
s.push_str(&format!("{} ", *val));
}
f.write_str(&s)
}
}
fn main() -> Result<(), Box<dyn Error>> {
let input_file = File::open("algsort.in")?;
let mut buf_reader = BufReader::new(input_file);
let output_file = File::create("algsort.out")?;
let mut buf_writer = BufWriter::new(output_file);
let mut line = String::new();
buf_reader.read_line(&mut line)?;
let n: usize = line.trim().parse()?;
let mut v = Vec::with_capacity(n);
line.clear();
buf_reader.read_line(&mut line)?;
let mut line_it = line.split_whitespace();
for _ in 0..n {
v.push(line_it.next().unwrap().parse::<u32>()?);
}
drop(line);
drop(buf_reader);
v.sort();
buf_writer.write_fmt(format_args!("{}", MyStruct(v)))?;
Ok(())
}