[C10_DAN_25] Lọc tín hiệu

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python

Trong một thành phố thông minh, hệ thống cảm biến giao thông gửi dữ liệu liên tục về trung tâm xử lí, mỗi tín hiệu cảm biến là một số nguyên dương. Tuy nhiên, do lỗi kĩ thuật, có những chuỗi tín hiệu bị trùng lặp ba lần liên tiếp gây nhiễu loạn quá trình phân tích. Đội kĩ thuật cần làm sạch tín hiệu theo quy tắc đặc biệt để đảm bảo dữ liệu đầu vào là tối ưu nhất.

Chuỗi tín hiệu ban đầu là một dãy số nguyên có ~n~ số. Hệ thống sẽ lọc nhiễu tín hiệu theo quy trình như sau:

  • Bước 1. Từ trái sang phải, nếu phát hiện ~3~ tín hiệu liên tiếp giống nhau, hệ thống xóa bộ ba này khỏi dãy và đánh lại chỉ số từ đầu, rồi chuyển sang bước 2.
  • Bước 2. Từ phải sang trái, nếu phát hiện ~3~ tín hiệu liên tiếp giống nhau, hệ thống xóa bộ ba này khỏi dãy và đánh lại chỉ số từ đầu, rồi chuyển về bước 1.

Quy trình này lặp lại cho đến khi không còn bộ ba nào giống nhau liên tiếp.

Yêu cầu

Viết chương trình mô phỏng quy trình lọc nhiễu tín hiệu và ghi ra kết quả.

Dữ liệu đầu vào

Gồm hai dòng:

  • Dòng thứ nhất chứa số nguyên dương ~n~ ~(3 \le n \le 3 \times 10^5)~.
  • Dòng thứ hai chứa ~n~ số nguyên dương ~A_i~ ~(1 \le A_i \le 10^4)~.

Dữ liệu đầu ra

Gồm một dòng chứa dãy số nguyên dương ~A~ sau khi xóa.

Ví dụ

Ví dụ 1
INPUT
14
1 1 3 3 3 1 1 2 1 1 2 2 2 1
OUTPUT
1 2

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.