結果

問題 No.2803 Bocching Star
ユーザー
提出日時 2024-08-09 13:27:41
言語 Rust
(1.83.0 + proconio)
結果
AC  
実行時間 95 ms / 2,000 ms
コード長 622 bytes
コンパイル時間 13,283 ms
コンパイル使用メモリ 378,596 KB
実行使用メモリ 18,476 KB
最終ジャッジ日時 2024-08-09 13:28:00
合計ジャッジ時間 18,806 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 35
権限があれば一括ダウンロードができます

ソースコード

diff #

use std::collections::BTreeSet;

fn g() -> Vec<usize> {
	let mut s = String::new();
	std::io::stdin().read_line(&mut s).ok();
	s.split_whitespace().flat_map(str::parse).collect()
}
fn main() {
	let n = g();
	let mut p = g()
		.iter()
		.enumerate()
		.map(|(i, &p)| (p, i + 1))
		.collect::<Vec<_>>();
	p.sort();
	let mut b = BTreeSet::new();
	for t in p.windows(2) {
		if t[1].0 - t[0].0 <= n[1] {
			b.insert(t[0].1);
			b.insert(t[1].1);
		}
	}
	let a = BTreeSet::from_iter(1..=n[0]);
	let a = a.difference(&b);
	println!(
		"{}\n{}",
		a.clone().count(),
		a.map(|&x| x.to_string()).collect::<Vec<_>>().join(" ")
	)
}
0