2020年4月2日 星期四

[C_MM209-易] 求移動位置與總移動長度

[C_MM209-易] 求移動位置與總移動長度

成績: 0 / 倒扣: 0.8
問題描述
小明開發了一個可以往上下左右四個方向移動的機器人,為了驗證機器人的移動能力,於是將機器人擺放在一個25x25的平面空間內。一開始機器人將放置在左上角標示為(0,0)的位置。當指令下達(4,5)時,機器人將先往右移動四格再往下移動五格抵達(4,5)的方格內(如圖紅線),共移動了九格。接著當指令下達移動到(-1,-3)的位置時,機器人將先往左移動一格再往上移動三格抵達(3,2)的位置(如圖深藍線),共移動了四格。接著指令下達(-5,1),因往左移動五格將超出平面範圍,因此機器人將停在(0,2)的位置(如圖綠線),也不會在往下移動。若指令下達(2,-7),則機器人將先往移動兩格,接著再往上移動七格時因將超出平面範圍,因此機器人將停在(2,0)的位置(如圖水藍線)。因此在經過四次移動指令後,機器人共移動了20格。機器人的移動固定會先走X方向再走Y方面。現由檔案讀入五組移動指令,求出總共移動的格數與最後位置。

輸入格式
輸入五組移動指令。
-25 ≤ X,Y ≤ 25。
輸出格式
求出總共移動的格數與最後座標位置。
Example

Sample Input:Sample Output:
1 1
2 2
3 3
4 4
5 5
30 15 15
1 1
2 -2
3 3
-14 -4
5 5
27 5 8
  while True:
    try:
        pt = [[0 for i in range(2)] for j in range(6)] #產生輸入串列
        co = [[0 for i in range(2)] for j in range(6)] #產生座標串列
        total = 0
        for i in range(1,6): #記錄輸入座標
            pt[i] = list(map(int,input().split()))
        for i in range(5): #記錄游走座標
            if co[i][0] + pt[i+1][0] < 0:
                co[i+1][0] = 0
                co[i+1][1] = co[i][1]
                continue
            elif co[i][0] + pt[i+1][0] >24:
                co[i+1][0] = 24
                co[i+1][1] = co[i][1]
                continue
            else:
                co[i+1][0] = co[i][0] + pt[i+1][0]
                if co[i][1] + pt[i+1][1] < 0: 
                    co[i+1][1] = 0
                else:
                    co[i+1][1] = co[i][1] + pt[i+1][1]
        for i in range(5):
            total += abs(co[i+1][0] - co[i][0]) + abs(co[i+1][1] -co[i][1])
        print('%d %d %d' % (total,co[-1][0],co[-1][1]))
    except(EOFError):
        break

沒有留言:

張貼留言