
spreadDisease
Cho một mảng hai chiều có n
dòng và m
cột thể hiện tổng cộng n*m
người, một dịch bệnh lạ bùng phát trong ma trận này
Người a[i][j]
bị nhiễm thì sau một ngày, 4 người ở kế bên người này cũng sẽ bị nhiễm (a[i-1][j],a[i+1][j],a[j-1][i],a[j+1][i]
)
Đang yên đang lành thì đột nhiên một thanh niên bị nhiễm bệnh, làm n*m-1
người khác hoảng loạn, người thì muốn tẩu thoát khỏi ma trận, người thì loay hoay với dăm ba loại kháng sinh vô dụng, nhưng buồn thay dịch bệnh này mạnh đến nổi một khi bị nhiễm thì không thể nào cứu chữa được.
Cho trước n,m,
mảng human[] (i=human[0],j=human[1])
là tọa độ người bị nhiễm đầu tiên và mảng you[] (i=you[0],j=you[1])
là tọa độ của bạn, hãy tính và trả về hàm spreadDisease[]
.
spreadDisease[0]
là số ngày trải qua từ lúc bắt đầu dịch bệnh cho tới khi bạn bị nhiễm bệnh.spreadDisease[1]
là số ngày trải qua từ lúc bắt đầu dịch bệnh cho đến khi mọi người đều đã bị nhiễm.
Ví dụ
- Với
n=3, m=3, human=[1,1], you=[0,0
] thìspreadDisease=[2,2]
- Giải thích:
Đầu vào/Đầu ra:
-
[Thời gian chạy] 0.5s với C++, 3s với Java và C#, 4s với Python, Go và JavaScript.
-
[Đầu vào] Integer
n, m
:-
1 ≤ n ≤ 5000
-
1 ≤ m ≤ 5000
-
Arrays of Integers
human, you
:-
1 ≤ human[0],you[0] ≤ n-1
-
1 ≤ human[1],you[1] ≤ m-1
-
-
[Đầu ra] Array of Integer
spreadDisease
:Kết quả thỏa mãn yêu cầu đề nêu trên
Post Comment