ORDERSET - Order statistic set
English | Vietnamese |
Hiện tại, bài tập này đã có trên online judge chính thức của VNOI, bạn có thể truy cập ở đây: https://oj.vnoi.info/problem/orderset
Tập hợp thứ tự
Bạn cần quản lý một tập hợp động các số, hỗ trợ hai thao tác cơ bản:
- INSERT(S,x): nếu x không thuộc S, thêm x vào S
- DELETE(S,x): nếu x thuộc S, xóa x khỏi S
và hai loại truy vấn
- K-TH(S) : trả về số bé thứ k của S
- COUNT(S,x): đếm số lượng số thuộc S bé hơn x
Dữ liệu
- Dòng 1: Q (1 ≤ Q ≤ 200000), số thao tác
- Q dòng sau, đầu mỗi dòng chứa ký tự I, D, K hoặc C cho biết thao tác tương ứng là INSERT, DELETE, K-TH hay COUNT. Tiếp theo là một khoảng trắng và một số nguyên là tham số cho thao tác đó.
Nếu tham số là giá trị x, dữ liệu bảo đảm 0 ≤ |x| ≤ 109. Nếu tham số là chỉ số k, dữ liệu bảo đảm 1 ≤ k ≤ 109.
Kết quả
Với mỗi truy vấn, in ra kết quả tương ứng trên một dòng. Với truy vấn K-TH, nếu k lớn hơn số phần tử của S, in ra 'invalid'.
Ví dụ
Dữ liệu 8 I -1 I -1 I 2 C 0 K 2 D -1 K 1 K 2 Kết quả 1 2 2 invalid
hide comments
gabriel88766:
2023-12-29 02:42:09
It can be solved using binary trie too, If you want to implement it by yourself.
|
|
nikhil0010:
2021-07-31 00:20:14
Lmao c++ ordered_set is great |
|
yasser1110:
2021-07-27 13:54:04
C++ STL has a data structure exactly for solving this kind of problems. See:- https://codeforces.com/blog/entry/11080?locale=en |
Added by: | Jimmy |
Date: | 2008-10-28 |
Time limit: | 1.5s-2s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ERL JS-RHINO NODEJS PERL6 VB.NET |
Resource: | Chess |