Pagini recente » Cod sursa (job #196238) | Cod sursa (job #2017244) | Cod sursa (job #395699) | Cod sursa (job #87183) | Cod sursa (job #3340976)
use std::io::{BufWriter, Write};
use std::fs::{File, self};
fn main() -> std::io::Result<()> {
let n: usize = fs::read_to_string("permutari.in")?
.trim()
.parse::<usize>()
.unwrap();
let mut writer = BufWriter::new(File::create("permutari.out")?);
let mut bktvec: Vec<usize> = vec![];
let mut used: Vec<bool> = vec![false; n + 1];
fn bkt(
n: usize,
pas: usize,
bktvec: &mut Vec<usize>,
used: &mut Vec<bool>,
writer: &mut BufWriter<File>,
) -> std::io::Result<()> {
if pas == n + 1 {
for item in bktvec.iter() {
write!(writer, "{} ", item)?;
}
writeln!(writer)?;
return Ok(());
}
for i in 1..=n {
if !used[i] {
used[i] = true;
bktvec.push(i);
bkt(n, pas + 1, bktvec, used, writer)?;
bktvec.pop();
used[i] = false;
}
}
Ok(())
}
bkt(n, 1, &mut bktvec, &mut used, &mut writer)?;
Ok(())
}