AtCoder Regular Contest #001 B : リモコン
問題概要
幅優先探索で距離を求める問題。
acceptされたコード
queueがなかったので富豪的に配列で代用した。
import std.stdio; import std.algorithm; immutable MAX_T = 40; immutable dts = [1,5,10,-1,-5,-10]; int A, B; void init(){ scanf("%d%d", &A, &B); } int solve(){ int[int] dist; int[] queue; dist[A] = 0; queue ~= A; for(;queue.length;){ int t = queue[0]; queue = queue[1..queue.length]; foreach(dt ; dts){ int nt = t + dt; if(-MAX_T <= nt && nt <= 2*MAX_T && !(nt in dist)){ dist[nt] = dist[t] + 1; queue ~= nt; } } } return dist[B]; } void main(){ init; writeln(solve); }