Dãy số răng cưa

Xem dạng PDF

Gửi bài giải

Điểm: 5,00
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

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

Dãy số x = (x1, x2, . . ., xk) được gọi là dãy răng cưa, nếu k > 2 và x1 khác x2  và nếu lấy ra 3 số bất kỳ liên tiếp nhau thì số ở giữa là số có giá trị nhỏ nhất  hoặc giá trị lớn nhất duy nhất của 3 số đó. Ví dụ: dãy (1, 2, 1, 3, 2) là dãy răng cưa, còn dãy (1, 2, 3, 1, 2) không phải là dãy răng cưa vì dãy 3 số đầu 1, 2, 3 có số ở giữa không nhỏ nhất cũng không lớn nhất.

            Yêu cầu: Cho số n và dãy số nguyên a1, a2, . . ., an (3 ≤ n ≤ 100000, 1 ≤ ai ≤ 1000). Hãy xác định số lượng tối thiểu các phần tử cần xoá trong dãy để các phần tử còn lại tạo thành dãy số răng cưa.

Dữ liệu vào: Cho từ tệp văn bản DAYSO.INP gồm:

  • Dòng đầu ghi số phần tử n.
  • Các dòng tiếp theo lần lượt ghi giá trị các phần tử của dãy số a1, a2, ...,an. Các số trên cùng một dòng ghi cách nhau ít nhất một dấu cách.

Kết quả: Ghi vào tệp văn bản DAYSO.OUT gồm một số nguyên xác định số phần tử cần xóa

Ví dụ:

DAYSO.INP

DAYSO.OUT

8

1  3  5  4  2  7  6  6

3

 

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.