Pagini recente » Cod sursa (job #123236) | Cod sursa (job #327222) | Cod sursa (job #2908747) | Cod sursa (job #3228204) | Cod sursa (job #3302202)
use std::collections::HashMap;
use std::fs::File;
use std::io::{BufRead, BufReader, BufWriter, Write};
fn main() {
let input = File::open("elmaj.in").expect("Can't open input");
let reader = BufReader::new(input);
let mut lines = reader.lines();
let n = lines.next().unwrap().unwrap().trim().parse::<usize>().unwrap();
let elems: Vec<u32> = lines.next().unwrap().unwrap()
.split_whitespace()
.map(|x| x.parse().unwrap())
.collect();
let mut freq = HashMap::new();
for &val in &elems {
let count = freq.entry(val).or_insert(0);
*count += 1;
}
let mut major = -1;
for (&key, &value) in freq.iter() {
if value >= n / 2 + 1 {
major = key as i32;
break;
}
}
let mut output = BufWriter::new(File::create("elmaj.out").expect("Can't create output"));
writeln!(output, "{}", if major == -1 { "-1".to_string() } else { format!("{} {}", major, freq[&(major as u32)]) }).unwrap();
}