use std::io::Read; fn solve(data: &mut Vec<(f64, (f64, f64))>) { data.sort_by(|pair0, pair1| (pair0.0).partial_cmp(&pair1.0).unwrap()); data.iter().rev().for_each(|pair| { println!("{} {}", (pair.1).0, (pair.1).1); }); } fn main() { let mut all_data = String::new(); std::io::stdin().read_to_string(&mut all_data).ok(); let all_data: Vec<&str> = all_data.trim().split('\n').map(|w| w.trim()).collect(); let n = all_data.iter().next().unwrap().parse::().unwrap(); let mut data: Vec<(f64, (f64, f64))> = all_data.iter().skip(1).take(n) .map(|w| { let ret: Vec = w.split_whitespace().map(|i| i.parse::().unwrap()).collect(); (ret[0] / ret[1], (ret[0], ret[1])) }) .collect(); solve(&mut data); }