結果
| 問題 |
No.2178 Payable Magic Items
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-01-06 23:49:50 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,324 bytes |
| コンパイル時間 | 15,016 ms |
| コンパイル使用メモリ | 384,400 KB |
| 実行使用メモリ | 37,680 KB |
| 最終ジャッジ日時 | 2024-12-14 18:09:46 |
| 合計ジャッジ時間 | 20,889 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 6 WA * 17 |
ソースコード
use std::collections::HashSet;
fn main() {
let (n, k) = {
let mut line = String::new();
std::io::stdin().read_line(&mut line).unwrap();
let mut iter = line.split_whitespace();
(
iter.next().unwrap().parse::<usize>().unwrap(),
iter.next().unwrap().parse::<usize>().unwrap(),
)
};
let mut ccc: Vec<Vec<char>> = vec![];
for _ in 0..n {
let mut line = String::new();
std::io::stdin().read_line(&mut line).unwrap();
ccc.push(line.trim().chars().collect());
}
let sss: Vec<Vec<usize>> = ccc
.iter()
.map(|cc| cc.iter().map(|&c| (c as u8 - b'0') as usize).collect())
.collect();
let mut min_max = vec![0; 1 << k];
let mut min_max_indexes = vec![0; 1 << k];
for i in 0..n {
for bit in 1..(1 << k) {
let min = (0..k)
.filter(|&j| (bit >> j) & 1 == 1)
.map(|j| sss[i][j])
.min()
.unwrap();
if min >= min_max[bit] {
min_max[bit] = min;
min_max_indexes[bit] = i;
}
}
}
let mut s = HashSet::new();
for &e in min_max_indexes.iter().skip(1) {
s.insert(e);
}
let ans = n - s.len();
println!("{}", ans);
}