Cod sursa(job #3313653)

Utilizator game_difficultyCalin Crangus game_difficulty Data 5 octombrie 2025 18:56:24
Problema Generare de permutari Scor 100
Compilator rs Status done
Runda Arhiva educationala Marime 0.95 kb
use std::fs::File;
#[allow(unused_imports)]
use std::io::{BufRead, BufReader, Read, BufWriter, Write};

const FILE: &'static str = "permutari";

fn bkt(pas: usize, &n: &usize, v: &mut Vec<usize>, f: &mut Vec<bool>, fout: &mut BufWriter<File>) {
    if pas == n {
        for x in v {
            write!(fout, "{} ", x).unwrap();
        }
        write!(fout, "\n").unwrap();
    } else {
        for i in 1..=n {
            if f[i] { continue; }
            v.push(i);
            f[i] = true;
            bkt(pas + 1, &n, v, f, fout);
            v.pop();
            f[i] = false;
        }
    }
}

fn main() {
    let mut fin = BufReader::new(File::open(format!("{}.in", FILE)).unwrap());
    let mut fout = BufWriter::new(File::create(format!("{}.out", FILE)).unwrap());

    let mut input = String::new();
    fin.read_line(&mut input).unwrap();

    let n = input.trim().parse::<usize>().unwrap();

    bkt(0, &n, &mut vec![], &mut vec![false; n + 1], &mut fout);

}