use std::{collections::BTreeMap, io::Read}; fn main() { let mut s = String::new(); std::io::stdin().read_to_string(&mut s).ok(); let l: Vec<_> = s.lines().collect(); let n: usize = l[0].parse().unwrap(); let mut h = BTreeMap::new(); for i in 1..=n { *h.entry(l[i]).or_insert(0) += i * (n - i + 1); } for (k, v) in h { println!("{v} {k}") } }