AtCoder Beginner Contest 252 B

https://atcoder.jp/contests/abc252/tasks/abc252_b

デバッグでHashSetをVecに変換しましたが、from_iterを使うと簡単です。

use std::iter::FromIterator;

let w = Vec::from_iter(max_index_set.iter());
// Takahashi's Failure
#![allow(non_snake_case)]

use std::collections::HashSet;


//////////////////// library ////////////////////

fn read<T: std::str::FromStr>() -> T {
    let mut line = String::new();
    std::io::stdin().read_line(&mut line).ok();
    line.trim().parse().ok().unwrap()
}

fn read_vec<T: std::str::FromStr>() -> Vec<T> {
    read::<String>().split_whitespace()
            .map(|e| e.parse().ok().unwrap()).collect()
}


//////////////////// process ////////////////////

fn max_foods(A: &Vec<i32>) -> HashSet<usize> {
    let max_score = A.iter().max().unwrap();
    return (0..A.len()).filter(|&i| A[i] == *max_score).collect()
}

fn main() {
    let v = read_vec();
    let _N: usize = v[0];
    let _K: usize = v[1];
    let A = read_vec();
    let B: Vec<usize> = read_vec();
    let max_index_set = max_foods(&A);
    let b = B.iter().any(|&i| max_index_set.contains(&(i - 1)));
    println!("{}", if b { "Yes" } else { "No" });
}