Rửa chén

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1900 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Sau bữa tiệc sinh nhật, hai anh em An và Bình được giao rửa một chồng đĩa gồm \(N\) chiếc đĩa được đánh số \(1, 2, \dots, N\). An đứng ở bồn rửa \(1\) với chồng đĩa bẩn, Bình đứng ở bồn rửa \(2\) và chờ để tráng đĩa bằng nước. Ở giữa An và Bình có một quầy để xếp những chiếc đĩa đã có xà phòng và chờ tráng nước. Ở mỗi bước, một trong hai thao tác sau cần thực hiện:

  • An lấy chiếc đĩa trên cùng của chồng đĩa bẩn. Làm sạch bằng xà phòng. Sau đó xếp chiếc đĩa này vào quầy chờ tráng nước bằng một trong hai cách:
    • Xếp vào một chồng đĩa đã có trước đó trên quầy
    • Tạo một chồng đĩa mới nằm bên phải những chồng đã có trước đó.
  • Bình lấy chiếc đĩa trên cùng của chồng đĩa nằm bên trái cùng của quầy chờ. Tráng bằng nước, rồi xếp lên trên cùng của chồng đĩa sạch.

Thứ tự của những chiếc đĩa rất quan trọng. Do đó mục tiêu của An và Bình là chồng đĩa sạch phải được xếp theo nguyên tắc: đĩa có số thứ tự nhỏ nằm ở dưới, đĩa có số thứ tự lớn nằm ở trên. Tuy nhiên, điều kiện này có thể không hoàn thành được cho toàn bộ \(N\) chiếc đĩa. Vậy nên, bạn hãy giúp An và Bình xác định độ dài tiền tố tối đa của chồng đĩa có thể thỏa mãn điều kiện này.

Input

  • Dòng đầu tiên chứa số nguyên \(N\) \((1 \le N \le 10^5)\)
  • \(N\) dòng tiếp theo cho biết số thứ tự của các chiếc đĩa trong chồng đĩa bẩn theo chiều từ trên xuống.

Output

  • In ra độ dài tiền tố lớn của chồng đĩa sao cho các đĩa sau khi rửa sạch có thể được xếp theo đúng thứ tự.

Examples

Test

Input
5
4
5
2
3
1
Output
4
Note

Thứ tự thực hiện các bước như sau:

  1. An lấy đĩa \(4\), làm sạch bằng xà phòng. Tạo một chồng đĩa mới tại quầy chờ để xếp đĩa \(4\) lên.
  2. An lấy đĩa \(5\), làm sạch bằng xà phòng. Tạo một chồng đĩa mới tại quầy chờ để xếp đĩa \(5\) lên (bên phải chồng của đĩa \(4\))
  3. An lấy đĩa \(2\), làm sạch bằng xà phòng. Xếp đĩa \(2\) lên trên đĩa \(4\).
  4. Bình lấy đĩa \(2\) tráng nước. Xếp vào chồng đĩa sạch.
  5. An lấy đĩa \(3\), làm sạch bằng xà phòng. Xếp đĩa \(3\) lên trên đĩa \(4\).
  6. Bình lần lượt lấy đĩa \(3, 4, 5\) tráng nước. Xếp vào chồng đĩa sạch.

Bình luận (1)

Mới nhất
Tải bình luận...

Kỳ thi: