Loading Now

rightTurn

Cho lưới nguyên Oxy. Điểm nguyên (x1y1) và điểm nguyên (x2y2) được gọi là kề nhau nếu thỏa điều kiện |x1 x2| + |y1 y2| = 1. Một robot ban đầu đứng tại gốc tọa độ. Ở mỗi bước, robot sẽ di chuyển sang một điểm nguyên kề với vị trí hiện tại. Từ bước di chuyển thứ hai trở đi, robot có thể đi tiếp theo hướng cũ, rẽ sang trái, rẽ sang phải, hay trở lại vị trí trước đó.

Cho tọa độ các điểm nguyên mà robot đã đi qua. Hãy đếm xem robot đã rẽ phải bao nhiêu lần.

Ví dụ:

  • Với move = [[0,0],[1,0],[1,1],[2,1],[2,0],[3,0],[3,-1]] thì rightTurn(move) = 3.

Đường đi của robot được miêu tả như hình trên, từ ô (0,0), robot đi đến (1,0), rẽ trái sang ô (1,1), rẽ phải sang ô (2,1), rẽ phải sang ô (2,0), rẽ trái sang (3,0) cuối cùng rẽ phải sang ô (3, - 1). Tổng cộng robot đã rẽ phải 3 lần.

Đầu vào/đầu ra:

  • [Thời gian chạy]: 0.5s với C++, 3s với Java/C#, 4s với Python/Go/Java Script
  • [Đầu vào] Matrix of Integers move 
    Mảng chứa tọa độ các điểm nguyên mà robot đã đi qua.
    2 ≤ move.size() ≤ 10000
    move[].size() = 2
  • [Đầu ra]: Integer
    Số lần rẽ phải của robot.

Post Comment

Contact