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