Submission #1606113
Source Code Expand
(use util.queue) ; 入力 (define R (read)) (define C (read)) (define sy (read)) (define sx (read)) (define gy (read)) (define gx (read)) ; 残った改行文字の処理 (read-char) ; cの宣言 ; cの要素をベクターにする (define c (make-vector R)) (let loop-r ((raw 0)) (if (< raw R) (begin (vector-set! c raw (make-vector C)) (loop-r (+ raw 1))))) ; cに値をセット (let loop-r ((raw 0)) (if (< raw R) (begin (let loop-c ((col 0)) (if (< col C) (begin (vector-set! (vector-ref c raw) col (read-char)) (loop-c (+ col 1))))) (read-char) (loop-r (+ raw 1))))) ; キューの準備 (define q (make-queue)) ; 座標と距離のペアをキューで扱う (enqueue! q (cons (cons (- sy 1) (- sx 1)) 0)) ; 解答の計算 (let solve () (let* ((top (dequeue! q)) (x (car (car top))) (y (cdr (car top))) (xp (+ x 1)) (xm (- x 1)) (yp (+ y 1)) (ym (- y 1)) (d (cdr top))) (if (and (= x (- gx 1)) (= y (- gy 1))) (begin (display d) (display "\n")) ; 近傍マスの距離確定とエンキュー (begin ; 右のマス (if (char=? (vector-ref (vector-ref c y) xp) #\.) (begin (vector-set! (vector-ref c y) xp #\#) (enqueue! q (cons (cons xp y) (+ d 1))))) ; 下のマス (if (char=? (vector-ref (vector-ref c yp) x) #\.) (begin (vector-set! (vector-ref c yp) x #\#) (enqueue! q (cons (cons x yp) (+ d 1))))) ; 左のマス (if (char=? (vector-ref (vector-ref c y) xm) #\.) (begin (vector-set! (vector-ref c y) xm #\#) (enqueue! q (cons (cons xm y) (+ d 1))))) ; 上のマス (if (char=? (vector-ref (vector-ref c ym) x) #\.) (begin (vector-set! (vector-ref c ym) x #\#) (enqueue! q (cons (cons x ym) (+ d 1))))) (solve)))))
Submission Info
Submission Time | |
---|---|
Task | C - 幅優先探索 |
User | kanji1896 |
Language | Scheme (Gauche 0.9.3.3) |
Score | 100 |
Code Size | 1970 Byte |
Status | AC |
Exec Time | 28 ms |
Memory | 4560 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 100 / 100 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt |
All | subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0_sample01.txt | AC | 28 ms | 4560 KB |
subtask0_sample02.txt | AC | 8 ms | 3196 KB |
subtask0_sample03.txt | AC | 9 ms | 3324 KB |
subtask1_01.txt | AC | 8 ms | 3324 KB |
subtask1_02.txt | AC | 8 ms | 3324 KB |
subtask1_03.txt | AC | 8 ms | 3324 KB |
subtask1_04.txt | AC | 9 ms | 3324 KB |
subtask1_05.txt | AC | 8 ms | 3324 KB |
subtask1_06.txt | AC | 9 ms | 3324 KB |
subtask1_07.txt | AC | 8 ms | 3196 KB |
subtask1_08.txt | AC | 8 ms | 3196 KB |
subtask1_09.txt | AC | 9 ms | 3324 KB |
subtask1_10.txt | AC | 8 ms | 3324 KB |
subtask1_11.txt | AC | 10 ms | 3324 KB |
subtask1_12.txt | AC | 9 ms | 3324 KB |
subtask1_13.txt | AC | 8 ms | 3324 KB |
subtask1_14.txt | AC | 8 ms | 3196 KB |
subtask1_15.txt | AC | 9 ms | 3324 KB |
subtask1_16.txt | AC | 9 ms | 3324 KB |
subtask1_17.txt | AC | 9 ms | 3324 KB |
subtask1_18.txt | AC | 9 ms | 3324 KB |
subtask1_19.txt | AC | 8 ms | 3324 KB |
subtask1_20.txt | AC | 9 ms | 3324 KB |
subtask1_21.txt | AC | 9 ms | 3324 KB |
subtask1_22.txt | AC | 9 ms | 3324 KB |