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

コメントを残す

メールアドレスが公開されることはありません。