結果

問題 No.1053 ゲーミング棒
ユーザー taba
提出日時 2024-08-05 17:18:38
言語 Rust
(1.83.0 + proconio)
結果
AC  
実行時間 6 ms / 2,000 ms
コード長 901 bytes
コンパイル時間 11,602 ms
コンパイル使用メモリ 397,796 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-08-05 17:18:52
合計ジャッジ時間 13,266 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 34
権限があれば一括ダウンロードができます
コンパイルメッセージ
warning: unused imports: `HashMap`, `HashSet`
 --> src/main.rs:1:24
  |
1 | use std::collections::{HashMap, HashSet};
  |                        ^^^^^^^  ^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

ソースコード

diff #

use std::collections::{HashMap, HashSet};

fn main() {
    proconio::input! {
        n: usize,
        mut a: [u32; n],
    }
    // remove duplicates
    loop {
        let a_len = a.len();
        a = a
            .iter()
            .copied()
            .enumerate()
            .filter(|(i, _)| *i == a.len() - 1 || a[*i] != a[*i + 1])
            .map(|x| x.1)
            .collect();
        if a.len() == a_len {
            break;
        }
    }
    let mut count = vec![0; 100000 + 1];
    a.iter().for_each(|x| count[*x as usize] += 1);
    let mut count_2 = 0;
    for c in count {
        if c == 2 {
            count_2 += 1;
        } else if c > 2 {
            println!("-1");
            return;
        }
    }
    if count_2 == 0 {
        println!("0");
    } else if count_2 == 1 && a[0] == a[a.len() - 1] {
        println!("1");
    } else {
        println!("-1");
    }
}
0