Số lớn nhất


Submit solution

Points: 2 (partial)
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 có n phần tử \(a_1, a_n, ...,a_n\) các giá trị \(-10^5 \le a_i \le 10^5\) và có m thao tác, mỗi thao tác biến đổi số ở vị trí nào đó thành số đối của nó gồm \(b_1, b_2, ... , b_m\). \((1 \le b_i \le n)\) Nhiệm vụ của bạn phải xuất ra m giá trị lớn nhất của dãy số sau khi thực hiện từng thao tác biến đổi. Chú ý rằng các giá trị \(b_i, b_j\) có thể trùng nhau.

Input

Dòng đầu gồm hai số n và m \((1 \le n,m \le 10^5)\)

Dòng thứ 2 chứa n số nguyên thuộc đoạn \([-10^5, 10^5]\)

Dòng thứ 3 chứa m số nguyên thuộc đoạn [1, ... , n]

Output

Xuất ra m giá trị lớn nhất của dãy sau từng phép biến đổi trên cùng một dòng

Ví dụ

Input

5 6
3 -4 5 -6 -5
2 3 2 5 1 4

Output

5 4 3 5 5 6

Giải thích Dãy lần lượt biến đổi như sau

3 4 5 -6 -5     -> 5
3 4 -5 -6 -5    -> 4
3 -4 -5 -6 -5   -> 3
3 -4 -5 -6 5    -> 5
-3 -4 -5 -6 5   -> 5
-3 -4 -5 6 5    -> 6
tichpx

Comments


  • 0
    rambaldi  commented on May 13, 2019, 1:15 p.m. edited

    .


    • 0
      TICHPX  commented on May 16, 2019, 8:29 a.m.

      Tìm hiểu về cấu trúc dữ liệu map hoặc multi_set sẽ giải được bài này