
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.
- Giây đầu tiên sau khi lọ
1
rơi toàn bộ ô(X,Y)
chứa đầy hóa chất, - 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
là(X,Y), (X-1,Y), (X+1,Y), (X,Y-1), (X,Y+1).
- 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