Phần tử nhỏ hơn lớn nhất đứng trước
Submit solution
Points:
3
Time limit:
1.0s
Memory limit:
98M
Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG
Cho dãy số nguyên dương có \(n\) phần tử \(a_1,a_2,...a_n\) với mỗi phần tử thứ \(i\) bạn phải chỉ ra phần tử lớn nhất nhỏ hơn \(a_i\) mà đứng trước vị trí \(i\)
Input
Dòng đầu tiên là số nguyên dương n có giá trị không vượt quá \(10^5\)
Dòng tiếp theo là n số nguyên dương có giá trị không vượt quá \(10^9\)
Ouput
Xuất ra n dòng, trong đó dòng thứ i sẽ chỉ ra giá trị của phần tử lớn nhất nhỏ hơn \(a_i\) và số phần tử như vậy, trong trường hợp không có số nào nhỏ hơn đứng trước chỉ cần xuất ra 1 số \(0\)
Ví dụ
Input
8
4 7 10 7 9 4 5 8
Output
0
4 1
7 1
4 1
7 2
0
4 2
7 2
Comments
Đúng là mình tạo bài này bằng thuật toán chặt nhị phân có sẵn trên map