Sử dụng multiset & unordered_set
Xóa phần tử nhỏ nhất (multiset)
Nộp bàiPoint: 1
Cho một dãy số gồm n phần tử.
Hãy liên tục xóa phần tử nhỏ nhất ra khỏi dãy cho đến khi dãy rỗng.
Sau mỗi lần xóa, in ra phần tử bị xóa.
Input:
5
4 2 9 2 7
Output:
2 2 4 7 9
Tìm phần tử lớn nhất nhỏ hơn hoặc bằng X (multiset)
Nộp bàiPoint: 1
Cho một multiset và số nguyên x.
Tìm phần tử lớn nhất trong multiset nhỏ hơn hoặc bằng x.
Nếu không có phần tử nào thỏa mãn, in -1.
Input:
5 6
1 3 8 10 12
Output:
3
Đếm số lần xuất hiện (multiset)
Nộp bàiPoint: 1
Cho n số, hãy đếm số lần xuất hiện của từng phần tử theo thứ tự tăng dần.
Input:
6
4 4 1 3 4 3
Output:
1 1
3 2
4 3
Xóa một phần tử cụ thể (multiset)
Nộp bàiPoint: 1
Cho n số, sau đó nhập q truy vấn, mỗi truy vấn xóa 1 số x (nếu có).
Sau khi thực hiện xong tất cả, in ra các phần tử còn lại theo thứ tự tăng.
Input:
5
2 3 3 4 5
3
3
5
9
Output:
2 3 4
Ghép hai multiset
Nộp bàiPoint: 1
Cho hai multiset, in ra multiset chứa hợp của hai tập (bao gồm cả trùng lặp).
Input:
3
1 2 3
4
2 2 3 4
Output:
1 2 2 2 3 3 4
Phần giao của hai multiset
Nộp bàiPoint: 1
Cho hai multiset, in ra phần giao (các phần tử có mặt ở cả hai, tính theo số lần nhỏ hơn).
Input:
3
1 2 2
4
2 2 3 3
Output:
2 2
Mô phỏng hàng đợi ưu tiên (multiset)
Nộp bàiPoint: 1
Có q thao tác:
1 → thêm x
2 → in ra phần tử nhỏ nhất rồi xóa nó
Nếu hàng rỗng mà thao tác 2 xuất hiện → in "Empty".
Input:
5
1 10
1 5
1 7
2
2
Output:
5
7
Khoảng cách nhỏ nhất giữa 2 phần tử liền kề (multiset)
Nộp bàiPoint: 1
Cho dãy n số, tìm giá trị |ai - aj| nhỏ nhất với mọi cặp liền kề trong thứ tự sắp xếp.
Input:
5
4 1 8 7 2
Output:
1
Quản lý tòa nhà (multiset)
Nộp bàiPoint: 1
Bạn có n tầng của một tòa nhà (đánh số từ 1 đến n), ban đầu tất cả đều trống. Có m khách hàng, khách hàng thứ i muốn thuê tầng cao nhất có số tầng ≤ xi. Nếu không còn tầng nào thỏa mãn (tầng > xi hoặc đã cho thuê hết), in ra -1. Nếu tìm được, in số tầng đó và đánh dấu là đã cho thuê (không dùng lại nữa).
Input:
Dòng đầu: hai số nguyên n, m — số tầng và số yêu cầu thuê.
Dòng 2: n số nguyên — số tầng có sẵn (có thể là số tầng không liên tiếp).
Dòng 3: m số nguyên x1, x2, ..., x_m — yêu cầu của từng khách.
Output: In m số nguyên — kết quả thuê tầng tương ứng với mỗi yêu cầu.
Input:
3 5
2 3 4
3 4 2 2 1
Output:
3 4 2 -1 -1
Ghép cặp tối ưu (multiset)
Nộp bàiPoint: 1
Có hai mảng A và B gồm n các số nguyên (1 <= n <= 10^4; -10^6 <= A[i], B[i] <= 10^6).
Hãy ghép từng phần tử A[i] với B[j] sao cho hiệu |A[i] - B[j]| nhỏ nhất.
In ra tổng hiệu tối thiểu.
Input:
3
1 4 6
2 7 5
Output:
3
Tìm phần tử có tần suất cao nhất (unordered_set)
Nộp bàiPoint: 1
Cho dãy n số nguyên, hãy in ra phần tử có tần suất xuất hiện lớn nhất.
Nếu có nhiều phần tử cùng tần suất, in ra phần tử nhỏ nhất trong số đó.
Input:
n
a1 a2 ... an
Output: Một số nguyên duy nhất — phần tử có tần suất cao nhất.
Constraints:
1 ≤ n ≤ 2×10^5
1 ≤ ai ≤ 10^9
Sample:
Input:
6
1 3 2 3 1 3
Output:
3
Tìm số xuất hiện đúng k lần (unordered_set)
Nộp bàiPoint: 1
Cho dãy gồm n số.
In ra tất cả các số xuất hiện đúng k lần, theo thứ tự tăng dần.
Input:
n k
a1 a2 ... an
Output:
Danh sách các số xuất hiện đúng k lần (tăng dần), hoặc in "NONE" nếu không có.
Constraints:
1 ≤ n ≤ 2×10^5
1 ≤ ai ≤ 10^9
1 ≤ k ≤ n
Sample:
Input:
6 2
1 2 2 3 3 3
Output:
2
Tập hợp con của tập cho trước (unorder_set)
Nộp bàiPoint: 1
Viết chương trình để kiểm tra xem tập hợp thứ 2 có phải là tập con của một tập hợp thứ nhất hay không?
Định dạng đầu vào: Nhập vào 2 tập hợp
Định dạng đầu ra: In ra YES nếu thỏa mãn, in ra NO nếu không thỏa mãn.
Input 01:
1 2 3 4
1 2
Output 01:
YES
Input 02:
a b c d
e f
Output 02:
NO
Tổng bằng 1 giá trị cho trước (unorder_set)
Nộp bàiPoint: 1
Viết chương trình tìm tất cả các cặp phần tử trong danh sách có tổng bằng một giá trị cho trước. Không tính các cặp trùng nhau.
Định dạng đầu vào: Nhập vào 1 danh sách các số nguyên và một số nguyên k
Định dạng đầu ra: In ra tổng tất cả các cặp phần tử có tổng bằng k và các cặp thỏa mãn (phần tử nhỏ hơn in trước, lớn hơn in sau)
Input 01:
1 2 3 4
4
Output 01:
1
(1, 3)
Input 02:
1 2 7 8
9
Output 02:
2
(1, 8)
(2, 7)
Input 03:
2 3 5 8 11
2
Output 03:
0
NONE