結果
問題 |
No.3126 Dual Query Problem
|
ユーザー |
|
提出日時 | 2025-04-25 21:38:53 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 43 ms / 2,000 ms |
コード長 | 1,860 bytes |
コンパイル時間 | 12,426 ms |
コンパイル使用メモリ | 388,836 KB |
実行使用メモリ | 8,988 KB |
最終ジャッジ日時 | 2025-06-20 02:42:02 |
合計ジャッジ時間 | 19,736 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 33 |
ソースコード
#[allow(unused_imports)] use std::{ convert::{Infallible, TryFrom, TryInto as _}, fmt::{self, Debug, Display, Formatter,}, fs::{File}, hash::{Hash, Hasher}, iter::{Product, Sum}, marker::PhantomData, ops::{Add, AddAssign, Sub, SubAssign, Div, DivAssign, Mul, MulAssign, Neg, RangeBounds}, str::FromStr, sync::{atomic::{self, AtomicU32, AtomicU64}, Once}, collections::{*, btree_set::Range}, mem::{swap}, cmp::{self, Reverse, Ordering, Eq, PartialEq, PartialOrd}, thread::LocalKey, f64::consts::PI, time::Instant, cell::RefCell, io::{self, stdin, Read, read_to_string, BufWriter, BufReader, stdout, Write}, }; #[allow(unused_imports)] use proconio::{input, input_interactive, marker::{*}}; #[allow(unused_imports)] //use rand::{thread_rng, Rng, seq::SliceRandom}; #[allow(unused_imports)] //use ac_library::{*}; #[allow(dead_code)] const INF: i64 = 1<<62; #[allow(dead_code)] const MOD: i64 = 998244353; #[allow(dead_code)] const D: [(usize, usize); 4] = [(1, 0), (0, 1), (!0, 0), (0, !0)]; #[allow(dead_code)] const D2: [(usize, usize); 8] = [(1, 0), (1, 1), (0, 1), (!0, 1), (!0, 0), (!0, !0), (0, !0), (1, !0)]; use proconio::fastout; #[fastout] fn main() { input! { n: usize, q: usize, x: [i64; n], } let mut y = x.clone(); y.sort(); y.dedup(); let mut dic = HashMap::new(); for (i, &v) in y.iter().enumerate(){ dic.insert(v, i+1); } if n+y.len() > q{ println!("No"); } else { println!("Yes"); let mut used = HashSet::new(); for &v in &x{ let idx = dic[&v]; if !used.contains(&v){ used.insert(v); println!("1 {} {}", idx, v); } println!("2 {}", idx); } for _ in 0..q-n-y.len(){ println!("1 {} {}", n, 1); } } }