Dãy tăng giảm tuần hoàn

Xem dưới dạng PDF

Gửi bài giải

Điểm: 10
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Kiểu bài tập

Cho trước một dãy số nguyên không âm \(A_n\) ; \(A[i]<1000\) ; \(1 \le i \le n \lt 1000\). Dãy \(A_n\) được gọi là một dãy tăng giảm tuần hoàn nếu tồn tại số k dương nào đó \((k<n)\) sao cho bắt đầu từ số hạng đầu tiên đến số hạng cuối cùng có dãy con k phần tử tăng (giảm) dần thì tiếp theo có dãy con k phần tử giảm (tăng) dần kế tiếp, cứ tiếp tục như vậy đến hết dãy số. Dãy số ít nhất có một dãy con tăng và một dãy con giảm. Dãy con tăng (giảm) cuối cùng không nhất thiết kéo dài tới k lần.

Ví dụ:

Các dãy tăng giảm tuần hoàn

1 2 3 4 7 4 3 2 1 5 6 7 8 4 3 2 1 8 9

1 2 3 9 3

Các dãy không tăng giảm tuần hoàn

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 9 8 7 6 9

Chú ý: Các phần tử tăng giảm tuyệt đối, không bằng nhau.

Yêu cầu: Hãy lập trình để nhận biết dãy số đã cho có phải là dãy tăng giảm tuần hoàn (True) hay không (False)?

Dữ liệu vào:

  • Được ghi trên tệp văn bản Tuanhoan.inp. Các phần tử trong dãy cách nhau ít nhất một khoảng trắng.

Dữ liệu ra:

  • Dòng 1: Ghi TRUE hoặc FALSE
  • Dòng 2: ghi số nguyên k trong trường hợp TRUE và số 0 trong trường hợp FALSE.

Input

1 2 3 4 7 4 3 2 1 5 6 7 8 4 3 2 1 4 9

Output

TRUE
5

Nhận xét

Không có ý kiến tại thời điểm này.