結果

問題 No.1588 Connection
ユーザー akakimidoriakakimidori
提出日時 2021-07-08 22:36:21
言語 Rust
(1.77.0 + proconio)
結果
AC  
実行時間 111 ms / 2,000 ms
コード長 1,181 bytes
コンパイル時間 12,764 ms
コンパイル使用メモリ 402,176 KB
実行使用メモリ 25,220 KB
平均クエリ数 647.66
最終ジャッジ日時 2024-07-17 11:37:51
合計ジャッジ時間 15,884 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 25 ms
25,220 KB
testcase_01 AC 22 ms
24,836 KB
testcase_02 AC 23 ms
25,208 KB
testcase_03 AC 22 ms
24,964 KB
testcase_04 AC 23 ms
24,580 KB
testcase_05 AC 22 ms
24,580 KB
testcase_06 AC 24 ms
25,220 KB
testcase_07 AC 23 ms
24,580 KB
testcase_08 AC 26 ms
24,836 KB
testcase_09 AC 26 ms
24,580 KB
testcase_10 AC 26 ms
25,220 KB
testcase_11 AC 26 ms
25,220 KB
testcase_12 AC 58 ms
25,220 KB
testcase_13 AC 73 ms
24,856 KB
testcase_14 AC 23 ms
24,964 KB
testcase_15 AC 24 ms
24,964 KB
testcase_16 AC 22 ms
24,964 KB
testcase_17 AC 23 ms
25,220 KB
testcase_18 AC 23 ms
25,220 KB
testcase_19 AC 23 ms
24,824 KB
testcase_20 AC 23 ms
25,220 KB
testcase_21 AC 111 ms
24,964 KB
testcase_22 AC 110 ms
24,964 KB
testcase_23 AC 60 ms
24,964 KB
testcase_24 AC 42 ms
25,220 KB
testcase_25 AC 68 ms
24,836 KB
testcase_26 AC 66 ms
24,964 KB
testcase_27 AC 41 ms
25,220 KB
testcase_28 AC 37 ms
24,868 KB
testcase_29 AC 101 ms
25,220 KB
testcase_30 AC 102 ms
25,208 KB
testcase_31 AC 21 ms
24,580 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
warning: unused variable: `m`
  --> src/main.rs:14:13
   |
14 |     let (n, m): (usize, usize) = {
   |             ^ help: if this is intentional, prefix it with an underscore: `_m`
   |
   = note: `#[warn(unused_variables)]` on by default

warning: type alias `Map` is never used
 --> src/main.rs:3:6
  |
3 | type Map<K, V> = BTreeMap<K, V>;
  |      ^^^
  |
  = note: `#[warn(dead_code)]` on by default

warning: type alias `Deque` is never used
 --> src/main.rs:5:6
  |
5 | type Deque<T> = VecDeque<T>;
  |      ^^^^^

ソースコード

diff #

use std::collections::*;

type Map<K, V> = BTreeMap<K, V>;
type Set<T> = BTreeSet<T>;
type Deque<T> = VecDeque<T>;

fn read() -> Vec<String> {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).unwrap();
    s.trim().split_whitespace().map(|s| String::from(s)).collect()
}

fn run() {
    let (n, m): (usize, usize) = {
        let a = read();
        (a[0].parse().unwrap(), a[1].parse().unwrap())
    };
    let mut set = Set::new();
    set.insert((0, 0));
    let mut dfs = vec![(0, 0)];
    while let Some((x, y)) = dfs.pop() {
        for &(x, y) in [(x - 1, y), (x + 1, y), (x, y - 1), (x, y + 1)].iter() {
            if x < n && y < n && !set.contains(&(x, y)) {
                println!("{} {}", x + 1, y + 1);
                let res = read();
                if res[0] == "Black" {
                    set.insert((x, y));
                    dfs.push((x, y));
                } else if res[0] == "White" {
                } else {
                    unreachable!();
                }
            }
        }
    }
    if set.contains(&(n - 1, n - 1)) {
        println!("Yes");
    } else {
        println!("No");
    }
}

fn main() {
    run();
}
0