Bài 21.5. Phân tích vùng dữ liệu cảm biến - [Độ khó: Khá]
Bài 21.5. Phân tích vùng dữ liệu cảm biến - [Độ khó: Khá]
Trong một dự án nghiên cứu môi trường, bạn thu thập được một chuỗi dài các giá trị nhiệt độ từ cảm biến đặt dưới lòng đất. Đôi khi, có những vùng nhiệt độ không ổn định (biến đổi nhanh chóng). Bạn cần xác định các "vùng nóng" liên tiếp, tức là các vùng mà tất cả các giá trị nhiệt độ đều lớn hơn hoặc bằng một ngưỡng cho trước. Hệ thống cần báo cáo điểm bắt đầu và kết thúc của mỗi vùng nóng, cũng như độ dài của nó. Nếu không có vùng nóng nào, cần thông báo.
INPUT FORMAT
Dòng đầu tiên chứa một số nguyên dương N
(1 <= N <= 1000), là tổng số điểm dữ liệu nhiệt độ.
Dòng thứ hai chứa N
số nguyên, cách nhau bởi dấu cách, đại diện cho giá trị nhiệt độ (temp_i
, 0 <= temp_i
<= 1000).
Dòng thứ ba chứa một số nguyên THRESHOLD
(0 <= THRESHOLD
<= 1000), là ngưỡng nhiệt độ tối thiểu để được coi là "nóng".
OUTPUT FORMAT
Với mỗi "vùng nóng" được tìm thấy, in ra một dòng theo định dạng: Vung nong tu index <start_idx> den index <end_idx>, do dai: <length>
.
<start_idx>
và <end_idx>
là chỉ số dựa trên 0 (0-indexed).
<length>
là số lượng phần tử trong vùng nóng.
Nếu không có vùng nóng nào, in ra Khong co vung nong nao.
Ví dụ:
Input:
12
10 12 15 8 20 22 18 25 10 5 15 20
15
Output:
Vung nong tu index 2 den index 2, do dai: 1
Vung nong tu index 4 den index 7, do dai: 4
Vung nong tu index 10 den index 11, do dai: 2
Giải thích:
N = 12
, nhiệt độ:10 12 15 8 20 22 18 25 10 5 15 20
,THRESHOLD = 15
.- Duyệt qua mảng:
10, 12
(< 15): Không.15
(>= 15): Bắt đầu vùng nóng. Kết thúc tại đây. Vùng:[15]
(index 2 đến 2), độ dài 1.8
(< 15): Không.20, 22, 18, 25
(>= 15): Bắt đầu vùng nóng20
(index 4). Kết thúc tại25
(index 7). Vùng:[20, 22, 18, 25]
, độ dài 4.10, 5
(< 15): Không.15, 20
(>= 15): Bắt đầu vùng nóng15
(index 10). Kết thúc tại20
(index 11). Vùng:[15, 20]
, độ dài 2.
Trường hợp biên (Edge cases):
- Input:
5 10 12 8 7 11 15
- Output:
Khong co vung nong nao.
- Input:
3 20 25 18 15
- Output:
Bài này yêu cầu duyệt vector bằng iterator (hoặc index), giữ trạng thái đang trong vùng nóng hay không, và tính toán chỉ số bắt đầu/kết thúc dựa trên iterator.Vung nong tu index 0 den index 2, do dai: 3
Comments