AtCoder Beginner Contest 051 C – Back and Forth をPython3で解く

Share

AtCoder上にある問題のうち、AtCoder Problemsでdiff 800以上と判定されているものを順番に解いていく企画。
基本的な考え方は全てコード中のコメントに入れてあるので、参照のこと。

出典:
AtCoder Beginner Contest 051 C – Back and Forth

実際に例を図に書き、そのまま実装する感じで……。

# AtCoder Beginner Contest 051 C - Back and Forth
# https://atcoder.jp/contests/abc051/tasks/abc051_c
# tag: グリッド 最短経路 愚直

# s:(0, 0) t:(1, 1) の時を考えてみると、

# jih
# kgtb
# lsac
# fed

# 上図で
# satbcdefsgthijkls
# の順に行くのが最短(一例)

# スタートとゴールが離れている場合は、途中を伸ばすだけでいい

def main():
sx, sy, tx, ty = map(int, input().split())

dx = tx - sx
dy = ty - sy

result = ''

# 往路 1
result += 'R'*dx + 'U'*dy

# 復路 1
result += 'RD' + 'D'*dy + 'L'*dx + 'LU'

# 往路 2
result += 'U'*dy + 'R'*dx

# 復路 2
result += 'UL' + 'L'*dx + 'D'*dy + 'DR'

print(result)

main()
Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です