[Quảng Ninh - TS10 - 2024] Bài 2: Mảng không giảm

Xem dạng PDF

Gửi bài giải

Điểm: 15,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho mảng ~a~ gồm ~n~ số nguyên ~a_1, a_2, ..., a_n~. Bạn có thể thay thế một số phần tử ~a_i~ của mảng bằng ~-a_i~ sao cho mảng không giảm hoặc nói rằng điều này là không thể.

Mảng ~a_1, a_2, ..., a_n~ được gọi là mảng không giảm nếu ~a_1 \le a_2 \le ... \le a_n~

INPUT

Dòng đầu tiên chứa số nguyên ~n~ (~1 ≤ n ≤ 10^5~) là số phần tử của mảng ~a~.

Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, ..., a_n~ (~-10^9 ≤ a_i ≤ 10^9~) là các phần tử của mảng ~a~.

OUTPUT

Nếu không thể thay thế một số phần tử ~a_i~ bằng ~-a_i~ để làm cho mảng không giảm, thì hãy ghi ra No.

Ngược lại ghi ra hai dòng, dòng đầu tiên ghi Yes và dòng thứ hai ghi ~n~ số nguyên ~b_1, b_2, ..., b_n~ tạo thành một mảng không giảm và đối với mọi ~1 ≤ i ≤ n~, ta có ~b_i = a_i~ hoặc ~b_i = -a_i~. Nếu có nhiều câu trả lời thì ghi ra một câu trả lời bất kỳ trong chúng. Chú ý rằng số phép thay thế không cần thiết phải tối thiểu.

SAMPLE INPUT 1

5
1 -1 -2 3 6 

SAMPLE OUTPUT 1

Yes
-1 -1 2 3 6

SAMPLE INPUT 2

3
-3 8 5

SAMPLE OUTPUT 2

No

SAMPLE INPUT 3

4
1 2 3 4

SAMPLE OUTPUT 3

Yes

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.