trang chủ / đề bài / thhv19_cntt_10_c

Dãy con lồi

Đề bài

Mô tả

Một lần khác An và Bình lại chơi trò chơi với dãy số như sau: An nghĩ ra một dãy số nguyên và yêu cầu Bình hãy xoá bớt đi một số phần tử của dãy và giữ nguyên trình tự các phần tử còn lại để nhận được một dãy con lồi.

Dãy số nguyên A1,A2,…,Ak được gọi là dãy lồi nếu nó giảm dần từ A1 đến một Ai nào đó rồi tăng dần đến Ak, tức là tồn tại chỉ số i (1≤i≤k) sao cho A1>A2>…>Ai<Ai+1<…<Ak. Các bất đẳng thức đều là ngặt: hai phần tử liền nhau trong dãy lồi không được bằng nhau. Phần tử nhỏ nhất Ai có thể là phần tử đầu hoặc cuối, nên một dãy tăng ngặt, một dãy giảm ngặt hay một dãy chỉ gồm một phần tử cũng là dãy lồi. Ví dụ: dãy số 10,5,4,2,−1,4,6,8,12 là một dãy lồi.

Yêu cầu: Hãy giúp Bình xoá ít phần tử nhất, tức là tìm một dãy con lồi có nhiều phần tử nhất của dãy An nghĩ ra.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên dương n.
  • Các dòng sau là n số nguyên của dãy a1,a2,…,an.

Dữ liệu ra

  • Dòng đầu tiên ghi số phần tử k của dãy con lồi dài nhất tìm được.
  • k dòng sau, mỗi dòng ghi một số thuộc dãy con, theo đúng thứ tự xuất hiện trong dãy ban đầu.

Nếu có nhiều dãy con lồi dài nhất, in ra một dãy bất kỳ.

Ràng buộc

  • 1≤n≤105.
  • |ai|≤109 với mọi i=1,2,…,n.

Ví dụ

Input Output Giải thích
8
2
6
4
-5
7
9
10
6
6
6
4
-5
7
9
10
Dãy con 6,4,−5,7,9,10 giảm ngặt tới −5 rồi tăng ngặt. Không có dãy con lồi nào gồm 7 phần tử.
6
3
3
2
2
5
5
3
3
2
5
Hai phần tử liền nhau không được bằng nhau, nên mỗi giá trị chỉ dùng được một lần, dãy con lồi dài nhất là 3,2,5.
5
1
2
3
4
5
5
1
2
3
4
5
Cả dãy tăng ngặt là dãy lồi (phần tử nhỏ nhất là phần tử đầu tiên), không cần xoá phần tử nào.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0