結果
問題 |
No.2779 Don't make Pair
|
ユーザー |
|
提出日時 | 2024-06-07 21:41:08 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 37 ms / 2,000 ms |
コード長 | 991 bytes |
コンパイル時間 | 19,936 ms |
コンパイル使用メモリ | 389,892 KB |
実行使用メモリ | 10,328 KB |
最終ジャッジ日時 | 2024-06-12 04:53:05 |
合計ジャッジ時間 | 18,346 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 24 |
ソースコード
use std::collections::HashMap; use proconio::input; fn main() { input! { n:usize, a:[usize;n], } let mut cnts0 = HashMap::new(); let mut cnts1 = HashMap::new(); let mut cnt0 = 0; let mut cnt1 = 0; cnts0.insert(a[0], 1); for i in 1..n { let cnt = cnts1.entry(a[i]).or_insert(0); if *cnt == 1 { cnt1 += 1; } *cnt += 1; } let mut ans = vec![]; if cnt0 == 0 && cnt1 == 0 { ans.push(1); } for i in 1..n - 1 { let Some(cnt)=cnts1.get_mut(&a[i])else{ return; }; if *cnt == 2 { cnt1 -= 1; } *cnt += 1; let cnt = cnts0.entry(a[i]).or_insert(0); if *cnt == 1 { cnt0 += 1; } *cnt += 1; if cnt0 == 0 && cnt1 == 0 { ans.push(i + 1); } } println!("{}", ans.len()); for i in ans { print!("{} ", i); } println!() }