Duyên hải Bắc Bộ 2025 - Sao chép ảnh

Xem dạng PDF

Gửi bài giải

Điểm: 50,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, Pascal, PyPy, Python, Scratch, TEXT

Trong 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

Trong buổi họp lớp, Alice đã chụp được ~n~ bức ảnh, các bức ảnh được đánh số từ ~1~ đến ~n~. Bức ảnh thứ ~i~ (~1 \le i \le n~) có kích thước ~s_i~. Có ~m~ bạn trong lớp muốn nhờ Alice sao chép các bức ảnh, bạn thứ ~k~ (~1 \le k \le m~) sẽ đưa cho Alice hai ổ đĩa, ổ đĩa thứ nhất có sức chứa ~a_k~, ổ đĩa thứ hai có sức chứa ~b_k~ và một danh sách ~L_k~ là các bức ảnh không cần sao chép. Bạn thứ ~k~ mong muốn có thể sao chép được nhiều bức ảnh nhất vào hai ổ đĩa gồm các bức ảnh không thuộc danh sách ~L_k~. Alice không chắc chắn có thể sao chép được tối đa các bức ảnh theo cách tối ưu. Tuy nhiên, bạn thứ ~k~ vẫn vui vẻ nếu số lượng bức ảnh sao chép được không ít hơn ~(g_k - 1)~, trong đó ~g_k~ là số lượng tối đa các bức ảnh có thể sao chép được theo cách tối ưu.

Yêu cầu: Hãy giúp Alice đưa ra kế hoạch sao chép các bức ảnh cho các bạn. Giả sử ~t_k~ là số lượng bức ảnh mà Alice có thể sao chép cho bạn thứ ~k~ (~1 \le k \le m~), giá trị này được chấp nhận nếu ~(g_k - 1) \le t_k \le g_k~.

Input

  • Dòng đầu chứa hai số nguyên dương ~n, m~ (~n, m \le 10^5~);
  • Dòng thứ hai chứa ~n~ số nguyên dương ~s_1, s_2, ..., s_n~ (~s_i \le 10^9~);
  • Dòng thứ ~k~ (~1 \le k \le m~) trong ~m~ dòng sau, mỗi dòng có dạng:
    • Hai số đầu tiên là ~a_k, b_k~ (~a_k, b_k \le 10^9~);
    • Số thứ ba là số ~|L_k|~ là số bức ảnh mà bạn ~k~ không thích;
    • Tiếp theo là ~|L_k|~ số là chỉ số các bức ảnh thuộc danh sách ~L_k~.

Tổng số lượng phần tử trong ~m~ danh sách không vượt quá ~10^5~ (~ \sum_{k=1}^m |L_k| \le 10^5~).

Output

  • Dòng đầu chứa số nguyên ~t_1~ là số bức ảnh có thể sao chép cho bạn thứ nhất;
  • Dòng thứ hai là một xâu độ dài ~n~ chỉ gồm các kí tự '0', '1', '2' mô tả cách sao chép các bức ảnh cho bạn thứ nhất, trong đó kí tự thứ ~i~ (~1 \le i \le n~) bằng '0' cho biết bức ảnh thứ ~i~ không được sao chép, bằng '1' hoặc '2' cho biết bức ảnh thứ ~i~ được sao chép vào đĩa 1 hoặc đĩa 2;
  • Do dữ liệu ghi ra quá lớn nên với các bạn còn lại chỉ cần đưa ra số lượng bức ảnh có thể sao chép được. Cụ thể, dòng thứ ba chứa ~m - 1~ số ~t_2, t_3, ..., t_m~.

Sample Input

6 3
2 1 1 3 4 1
5 5 0
5 5 2 2 6
5 7 0

Sample Output

5
111022
4 5

Giải thích

  • Với bạn thứ 1, tối đa các bức ảnh có thể sao chép được là ~5~ (ví dụ, đĩa 1 chứa bức ảnh 1, 2, 3; đĩa 2 chứa bức ảnh 5, 6). Kết quả đưa ra bằng ~4~ hoặc ~5~ đều được chấp nhận.
  • Với bạn thứ 2, tối đa các bức ảnh có thể sao chép được là ~4~ (ví dụ, đĩa 1 chứa bức ảnh 1, 4; đĩa 2 chứa bức ảnh 3, 5). Kết quả đưa ra bằng ~3~ hoặc ~4~ đều được chấp nhận.
  • Với bạn thứ 3, tối đa các bức ảnh có thể sao chép được là ~6~ (ví dụ, đĩa 1 chứa bức ảnh 1, 4; đĩa 2 chứa bức ảnh 2, 3, 5, 6). Kết quả đưa ra bằng ~5~ hoặc ~6~ đều được chấp nhận.

Subtasks

Subtask Điểm Ràng buộc
1 ~25~ ~n \le 10; m \le 3; a_k, b_k \le 1000; L_k = 0~.
2 ~25~ ~n \le 50; m \le 3; a_k, b_k \le 1000~.
3 ~25~ ~L_k = 0~.
4 ~25~ Không có ràng buộc nào thêm.

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.