Submission #1867480
Source Code Expand
#[allow(unused_imports)] use std::cmp::{max, min, Ordering}; #[allow(unused_imports)] use std::collections::{HashMap, HashSet, BinaryHeap, VecDeque, BTreeSet, BTreeMap}; #[allow(unused_imports)] use std::iter::FromIterator; #[allow(unused_imports)] use std::io::stdin; mod util { use std::io::stdin; use std::str::FromStr; use std::fmt::Debug; #[allow(dead_code)] pub fn line() -> String { let mut line: String = String::new(); stdin().read_line(&mut line).unwrap(); line.trim().to_string() } #[allow(dead_code)] pub fn gets<T: FromStr>() -> Vec<T> where <T as FromStr>::Err: Debug, { let mut line: String = String::new(); stdin().read_line(&mut line).unwrap(); line.split_whitespace() .map(|t| t.parse().unwrap()) .collect() } } #[allow(unused_macros)] macro_rules! get { ($t:ty) => { { let mut line: String = String::new(); stdin().read_line(&mut line).unwrap(); line.trim().parse::<$t>().unwrap() } }; ($($t:ty),*) => { { let mut line: String = String::new(); stdin().read_line(&mut line).unwrap(); let mut iter = line.split_whitespace(); ( $(iter.next().unwrap().parse::<$t>().unwrap(),)* ) } }; ($t:ty; $n:expr) => { (0..$n).map(|_| get!($t) ).collect::<Vec<_>>() }; ($($t:ty),*; $n:expr) => { (0..$n).map(|_| get!($($t),*) ).collect::<Vec<_>>() }; ($t:ty ;;) => { { let mut line: String = String::new(); stdin().read_line(&mut line).unwrap(); line.split_whitespace() .map(|t| t.parse::<$t>().unwrap()) .collect::<Vec<_>>() } }; } #[allow(unused_macros)] macro_rules! debug { ($($a:expr),*) => { println!(concat!($(stringify!($a), " = {:?}, "),*), $($a),*); } } fn main() { let (n, m) = get!(usize, usize); let mut aa = (0..n) .map(|_| { let mut v = util::gets::<usize>(); v.reverse(); for x in v.iter_mut() { *x -= 1; } v }) .collect::<Vec<_>>(); let mut ans = n; let mut used = vec![false; m]; 'outer: loop { let mut count = vec![0; m]; for a in aa.iter_mut() { while !a.is_empty() && used[a.last().cloned().unwrap()] { a.pop(); } if a.is_empty() { break 'outer; } let s = a.last().cloned().unwrap(); count[s] += 1; } let s = (0..m).max_by_key(|&i| count[i]).unwrap(); ans = min(ans, count[s]); used[s] = true; } println!("{}", ans); }
Submission Info
Submission Time | |
---|---|
Task | B - Sports Festival |
User | hatoo |
Language | Rust (1.15.1) |
Score | 700 |
Code Size | 3052 Byte |
Status | AC |
Exec Time | 6 ms |
Memory | 4352 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 700 / 700 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
All | sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 2 ms | 4352 KB |
sample_02.txt | AC | 2 ms | 4352 KB |
sample_03.txt | AC | 2 ms | 4352 KB |
subtask_1_01.txt | AC | 2 ms | 4352 KB |
subtask_1_02.txt | AC | 2 ms | 4352 KB |
subtask_1_03.txt | AC | 2 ms | 4352 KB |
subtask_1_04.txt | AC | 2 ms | 4352 KB |
subtask_1_05.txt | AC | 2 ms | 4352 KB |
subtask_1_06.txt | AC | 3 ms | 4352 KB |
subtask_1_07.txt | AC | 3 ms | 4352 KB |
subtask_1_08.txt | AC | 2 ms | 4352 KB |
subtask_1_09.txt | AC | 2 ms | 4352 KB |
subtask_1_10.txt | AC | 2 ms | 4352 KB |
subtask_1_11.txt | AC | 3 ms | 4352 KB |
subtask_1_12.txt | AC | 2 ms | 4352 KB |
subtask_1_13.txt | AC | 3 ms | 4352 KB |
subtask_1_14.txt | AC | 6 ms | 4352 KB |
subtask_1_15.txt | AC | 6 ms | 4352 KB |
subtask_1_16.txt | AC | 6 ms | 4352 KB |
subtask_1_17.txt | AC | 6 ms | 4352 KB |
subtask_1_18.txt | AC | 6 ms | 4352 KB |