use itertools::Itertools; use proconio::input; fn main() { input! { n: usize, lr: [(usize, usize); n], } let mut ans = 0; 'outer: for lr in lr.iter().permutations(n) { let mut diff = 0; for &(l, r) in lr { if diff > r { continue 'outer; } diff = diff.max(l); } ans += 1; } println!("{}", ans); }