trang chủ / bài tập / multiset

Tập hợp bội

Đề bài

Mô tả

Cho một tập hợp bội (multiset) gồm n số nguyên. Bạn cần xử lý q truy vấn thuộc hai loại:

  • Thêm: thêm một số nguyên k vào tập.
  • Xoá theo thứ hạng: tìm phần tử đứng thứ k khi sắp xếp tất cả phần tử của tập theo thứ tự không giảm, rồi xoá một phần tử đó khỏi tập.

Phần tử đứng thứ k (thống kê thứ tự thứ k) là phần tử ở vị trí k trong danh sách đã sắp xếp không giảm của toàn bộ phần tử. Ví dụ, nếu tập chứa 1,4,2,1,4,5,7k=3 thì phần tử thứ 3 trong danh sách [1,1,2,4,4,5,7]2. Nếu phần tử cần xoá xuất hiện nhiều lần, chỉ xoá đi một lần xuất hiện.

Sau khi xử lý xong tất cả truy vấn, hãy in ra một số bất kỳ thuộc tập, hoặc cho biết tập rỗng.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nq: số phần tử ban đầu và số truy vấn.
  • Dòng thứ hai chứa n số nguyên a1a2an: các phần tử ban đầu của tập.
  • Dòng thứ ba chứa q số nguyên k1,k2,,kq, mỗi số mô tả một truy vấn:
    • nếu 1kin, truy vấn là "thêm ki vào tập";
    • nếu ki<0, truy vấn là "xoá phần tử đứng thứ |ki|". Với truy vấn này, đảm bảo |ki| không vượt quá số phần tử hiện có của tập.

Dữ liệu ra

Nếu tập rỗng sau khi xử lý mọi truy vấn, in ra 0.

Ngược lại, in ra một số nguyên bất kỳ thuộc tập kết quả.

Ràng buộc

  • 1n,q106
  • 1a1a2ann
  • Mỗi ki hoặc thoả 1kin (thêm), hoặc ki<0 với |ki| không vượt quá kích thước tập tại thời điểm đó (xoá).

Ví dụ

Input Output Giải thích
5 4
1 2 3 4 5
-5 -1 -3 -1
3 Lần lượt xoá các phần tử 5,1,4,2 (theo thứ tự thời gian). Còn lại {3}.
6 2
1 1 1 2 3 4
5 6
1 Thêm 5 rồi thêm 6. Tập cuối là {1,1,1,2,3,4,5,6}; in ra bất kỳ phần tử nào cũng được, ví dụ 1 hoặc 6.
5 5
1 2 3 4 5
-1 -1 -1 -1 -1
0 Mọi phần tử đều bị xoá, tập rỗng.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0