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ử a1,an,...,an các giá trị 105ai105 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 b1,b2,...,bm. (1bin) 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ị bi,bj có thể trùng nhau.

Input

Dòng đầu gồm hai số n và m (1n,m105)

Dòng thứ 2 chứa n số nguyên thuộc đoạn [105,105]

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

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

Output

Copy
5 4 3 5 5 6

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

Copy
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