48 lines
1.2 KiB
Rust
48 lines
1.2 KiB
Rust
use std::io::{self, BufWriter, Write};
|
|
use std::collections::HashMap;
|
|
|
|
macro_rules! parse_list {
|
|
($t: ty) => ({
|
|
let mut line = String::new();
|
|
io::stdin().read_line(&mut line).unwrap();
|
|
let list: Vec<$t> = line.split_whitespace()
|
|
.map(|w| w.parse::<$t>().unwrap()).collect();
|
|
list
|
|
})
|
|
}
|
|
|
|
macro_rules! parse_line {
|
|
($($t: ty),+) => ({
|
|
let mut line = String::new();
|
|
std::io::stdin().read_line(&mut line).unwrap();
|
|
let mut iter = line.split_whitespace();
|
|
($(iter.next().unwrap().parse::<$t>().unwrap()),+)
|
|
})
|
|
}
|
|
|
|
|
|
|
|
fn main(){
|
|
let n : usize = parse_line!(usize);
|
|
let inputs : Vec<i32> = parse_list!(i32);
|
|
let _m : usize = parse_line!(usize);
|
|
let checks : Vec<i32> = parse_list!(i32);
|
|
|
|
let stdout = io::stdout();
|
|
let lock = stdout.lock();
|
|
let mut buff = BufWriter::new(lock);
|
|
|
|
let mut hash : HashMap<i32, bool> = HashMap::with_capacity(n);
|
|
|
|
for &x in inputs.iter(){
|
|
hash.insert(x, true);
|
|
}
|
|
|
|
for &c in checks.iter(){
|
|
match hash.get(&c){
|
|
Some(_) => {buff.write(b"1\n").expect("Failed to write");},
|
|
None => {buff.write(b"0\n").expect("Failed to write");},
|
|
}
|
|
}
|
|
}
|