結果
問題 | No.1692 Expectations |
ユーザー |
|
提出日時 | 2021-10-01 21:26:35 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 22 ms / 2,000 ms |
コード長 | 2,629 bytes |
コンパイル時間 | 12,865 ms |
コンパイル使用メモリ | 378,412 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-19 10:30:44 |
合計ジャッジ時間 | 14,115 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 20 |
ソースコード
#![allow(unused_macros, unused_imports)]macro_rules! dbg {($($xs:expr),+) => {if cfg!(debug_assertions) {std::dbg!($($xs),+)} else {($($xs),+)}}}fn main() {input!{n: usize,m: usize,a: [usize; n],}let mut a = a;a.sort();a.dedup();let min;if n == m && a[0] == a[a.len()-1] {min = 1;} else {min = 0;}println!("{} {}", a.len(), min);}pub mod input {#[macro_export]macro_rules! input{(sc=$sc:expr,$($r:tt)*)=>{input_inner!{$sc,$($r)*}};($($r:tt)*)=>{let mut sc=input::Scanner::new(std::io::stdin().lock());input_inner!{sc,$($r)*}};}#[macro_export]macro_rules! input_inner{($sc:expr)=>{};($sc:expr,)=>{};($sc:expr,$var:ident:$t:tt$($r:tt)*)=>{let $var=read_value!($sc,$t);input_inner!{$sc $($r)*}};}#[macro_export]macro_rules! read_value{($sc:expr,($($t:tt),*))=>{($(read_value!($sc,$t)),*)};($sc:expr,[$t:tt;$len:expr])=>{(0..$len).map(|_|read_value!($sc,$t)).collect::<Vec<_>>()};($sc:expr,[$t:tt])=>{{let len = read_value!($sc, usize);(0..len).map(|_|read_value!($sc,$t)).collect::<Vec<_>>()}};($sc:expr,Chars)=>{read_value!($sc,String).chars().collect::<Vec<char>>()};($sc:expr,Usize1)=>{read_value!($sc,usize)-1};($sc:expr,$t:ty)=>{$sc.next::<$t>()};}pub struct Scanner {s: Box<str>,input: std::iter::Peekable<std::str::SplitAsciiWhitespace<'static>>,}impl Scanner {pub fn new<R: std::io::Read>(mut reader: R) -> Self {let s = {let mut s = String::new();reader.read_to_string(&mut s).unwrap();s.into_boxed_str()};let mut sc = Scanner {s,input: "".split_ascii_whitespace().peekable(),};use std::mem;let s: &'static str = unsafe { mem::transmute(&*sc.s) };sc.input = s.split_ascii_whitespace().peekable();sc}#[inline]pub fn next<T: std::str::FromStr>(&mut self) -> TwhereT::Err: std::fmt::Debug,{self.input.next().unwrap().parse::<T>().expect("Parse error")}}}