結果
| 問題 |
No.1519 Diversity
|
| コンテスト | |
| ユーザー |
Strorkis
|
| 提出日時 | 2021-05-28 21:53:33 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,319 bytes |
| コンパイル時間 | 13,873 ms |
| コンパイル使用メモリ | 381,216 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-07 09:24:47 |
| 合計ジャッジ時間 | 17,115 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 1 WA * 14 |
ソースコード
use std::io::Write;
fn main() {
let ref mut buf = String::new();
std::io::Read::read_to_string(&mut std::io::stdin(), buf).ok();
let mut iter = buf.split_whitespace();
macro_rules! scan {
([$t:tt; $n:expr]) => ((0..$n).map(|_| scan!($t)).collect::<Vec<_>>());
(($($t:tt),*)) => (($(scan!($t)),*));
(Usize1) => (scan!(usize) - 1);
(Bytes) => (scan!(String).into_bytes());
($t:ty) => (iter.next().unwrap().parse::<$t>().unwrap());
}
let stdout = std::io::stdout();
let mut writer = std::io::BufWriter::new(stdout.lock());
let n = scan!(usize);
if n == 2 {
writeln!(writer, "1").ok();
writeln!(writer, "1 2").ok();
return;
}
let mut sum = 1;
let mut i = 2;
while sum + i <= n {
sum += i - 1;
i += 1;
}
sum += 1;
i -= 1;
let mut ans = Vec::new();
let mut p = 1;
let mut j = 2;
for k in (2..=i).rev() {
for _ in 0..k - if k == i { 0 } else { 1 } {
ans.push((p, j));
j += 1;
}
p = j - 1;
}
for _ in 0..n - sum {
ans.push((p, j));
p = j;
j += 1;
}
writeln!(writer, "{}", ans.len()).ok();
for (u, v) in ans {
writeln!(writer, "{} {}", u, v).ok();
}
}
Strorkis