Cod sursa(job #3335100)

Utilizator popoiu.georgeGeorge Popoiu popoiu.george Data 21 ianuarie 2026 17:12:09
Problema Sortare prin comparare Scor 80
Compilator rs Status done
Runda Arhiva educationala Marime 1.1 kb
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(())
}