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
tichpx

Comments


  • 3
    Hoan_CNTT_VA2_K61  commented on May 27, 2022, 4:25 p.m.

    so easy with map::lower_bound


    • 4
      TICHPX  commented on May 29, 2022, 3:41 a.m.

      Đú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