[DHBB25 - DX05 - 11] Bài 3: INFORNO
Xem dạng PDFTrong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Cho dãy ~n~ số nguyên dương ~a = \{a_1, a_2, ..., a_n\}~ (~1 \le a_i \le 10^9~). Ta định nghĩa dãy tích chênh lệch của dãy trên là một dãy ~b_1, b_2, ..., b_n~ trong đó: $$b_i = \prod_{j \ne i}^n (a_i - a_j)$$
Nếu không có chỉ số ~j~ nào thỏa mãn ~j \ne i~ thì ~b_i = 1~.
Từ dãy ~b_1, b_2, ..., b_n~, ta có một xâu ~st~ tương ứng có ~n~ ký tự chỉ gồm 3 ký tự +, -, 0 phụ thuộc vào dấu của dãy ~b_1, b_2, ..., b_n~. Cụ thể:
- ~st[i] = '+'~ nếu ~b_i > 0~;
- ~st[i] = '-'~ nếu ~b_i < 0~;
- ~st[i] = '0'~ nếu ~b_i = 0~.
Ví dụ: Cho dãy ~a = \{1; 2; 3; 1\}~
- ~b_1 = (a_1 - a_2) \times (a_1 - a_3) \times (a_1 - a_4) = (1 - 2) \times (1 - 3) \times (1 - 1) = 0~;
- ~b_2 = (a_2 - a_1) \times (a_2 - a_3) \times (a_2 - a_4) = (2 - 1) \times (2 - 3) \times (2 - 1) = -1~;
- ~b_3 = (a_3 - a_1) \times (a_3 - a_2) \times (a_3 - a_4) = (3 - 1) \times (3 - 2) \times (3 - 1) = 4~;
- ~b_4 = (a_4 - a_1) \times (a_4 - a_2) \times (a_4 - a_3) = (1 - 1) \times (1 - 2) \times (1 - 3) = 0~.
Xâu ~st~ nhận được là
0 - + 0.
Yêu cầu: Cho xâu ký tự ~st~ gồm ~n~ ký tự +, - hoặc 0. Hãy tìm dãy ~n~ số nguyên dương ~a_1, a_2, ..., a_n~ có thể sinh ra xâu ~st~ theo mô tả trên. Nếu có nhiều dãy thỏa mãn, in ra dãy có thứ tự từ điển nhỏ nhất.
Input
- Dòng 1: số nguyên ~n~ (~1 \le n \le 50~).
- Dòng 2: xâu ký tự ~st~ độ dài ~n~ chỉ gồm 3 ký tự
+,-,0.
Output
- Một dòng chứa dãy ~n~ số nguyên dương thỏa mãn yêu cầu đề bài, các số cách nhau bởi một dấu cách. Nếu không tồn tại dãy nào như vậy, in ra
-1.
Sample Input 1
4
0 - + 0
Sample Output 1
1 2 3 1
Subtasks
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | ~20~ | ~n \le 8~. |
| 2 | ~15~ | Xâu ~st~ chỉ có ký tự + hoặc 0. |
| 3 | ~20~ | Xâu ~st~ chỉ có ký tự - hoặc 0. |
| 4 | ~15~ | ~n \le 30~. |
| 5 | ~30~ | ~n \le 50~. |
Bình luận