結果
| 問題 | No.3262 水色コーダーさん、その問題d問題ですよ?(1<=d<=N) |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-11-20 20:12:45 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
AC
|
| 実行時間 | 3 ms / 2,000 ms |
| コード長 | 588 bytes |
| コンパイル時間 | 13,340 ms |
| コンパイル使用メモリ | 398,108 KB |
| 実行使用メモリ | 7,848 KB |
| 最終ジャッジ日時 | 2025-11-20 20:13:00 |
| 合計ジャッジ時間 | 14,104 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 24 |
ソースコード
use proconio::{fastout, input};
#[fastout]
fn main() {
input! {
n: usize,
diff: [(u16, u16); n],
}
println!("{}", output(solve(n, diff)));
}
fn dfs(n: usize, diff: &Vec<(u16, u16)>, prev_diff: u16, flag: u8) -> u16 {
if flag as u16 == (1 << n) - 1 {
return 1;
}
let mut ans = 0;
for i in 0..n {
let (l, r) = diff[i];
if (flag >> i) & 1 == 0 && prev_diff <= r {
ans += dfs(n, diff, prev_diff.max(l), flag | (1 << i));
}
}
ans
}
fn solve(n: usize, diff: Vec<(u16, u16)>) -> u16 {
dfs(n, &diff, 0, 0)
}
fn output(ans: u16) -> u16 {
ans
}