Loading Now

findTimeToExplode

Một sàn nhà được lót bằng gạch kích thước 1x1. 2 lọ hóa chất lỏng rơi đồng thời cùng một lúc xuống đất, lọ 1 rơi ở miếng gạch tọa độ a=(X,Y), lọ 2 b=(U,V), tọa độ 2 lọ khác nhau. Mất đúng một giây để hóa chất loang hết 1 ô gạch.

  1. Giây đầu tiên sau khi lọ 1 rơi toàn bộ ô (X,Y) chứa đầy hóa chất,
  2. Giây thứ hai hóa chất loang ra các ô kề cạnh với ô (X,Y), lúc này có 5 ô gạch chứa đầy hóa chất của lọ 1 (X,Y), (X-1,Y), (X+1,Y), (X,Y-1), (X,Y+1).
  3. Tiếp tục giây thứ ba, hóa chất loang ra theo quy tắc ô kề cạnh như trên và có 13 ô chứa hóa chất ở giây thứ ba,… .

Tương tự với lọ 2. Khi hai hóa chất chạm nhau sẽ phát nổ. Hỏi vụ nổ diễn ra ở giây thứ mấy ?
Lưu ý: chạm cạnh hay chạm đỉnh thì cũng được xem là chạm.

Ví dụ:

  • Với a=(4,5), b=(6,9) thì findTimeToExplode(a,b)=3. Như hình ta thấy ở giây thứ 3 đã có sự chạm đỉnh xảy ra.

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

  • [Giới hạn thời gian chạy] 0.5 giây với C++, 3 giây với Java và C#, 4 giây vs Python và Js

  • [Đầu vào] int.array a
    -20<=a[i]<=20

  • [Đầu vào] int.array b
    -20<=b[i]<=20
  • [Đầu ra] integer
    Hỏi vụ nổ diễn ra ở giây thứ mấy?

Post Comment

Contact