Pagini recente » Autentificare | Profil MH_06_001 | Profil mirceapgab | Profil bocapetru | Cod sursa (job #3313653)
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);
}