Seg Count 4 (kỹ thuật 2 con trỏ - multiset)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho mảng A[] gồm N số nguyên và số nguyên K, nhiệm vụ của bạn là đếm xem có bao nhiêu mảng con các phần tử liên tiếp trong mảng mà độ chênh lệch giữa phần tử lớn nhất và phần tử nhỏ nhất trong mảng con đó không vượt quá K (mảng con có thể là mảng có ít nhất 1 phần tử).


Định dạng đầu vào:

• Dòng đầu tiền là Nvà K

• Dòng thứ 2 là N số trong mảng A[]


Ràng buộc:

• 1<=N<=10^5

• 1<=A[i], K<=10^6


Định dạng đầu ra: In ra số lượng mảng con thỏa mãn đề bài


Input:
10 1
2 3 1 3 1 4 1 3 1 2
Output:
12

Intersetion (set)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho mảng A[] và B[] lần lượt gồm N và M số nguyên, nhiệm vụ của bạn là tìm giao của 2 mảng này và in theo thứ tự xuất hiện trong mảng A[].


Gợi ý:

Cách 1: Dùng 2 set để lưu 2 mảng A, B sau đó duyệt 1 trong 2 mảng và tìm kiểm sự xuất hiện của phần tử đang duyệt trong máng còn lại.

Cách 2: Dùng 1 map để đánh dấu, duyệt qua các phần tử trong mẳng A[] và cho map của từng phần tử trong mảng A[] = 1, duyệt qua máng B[] thì kiềm tra nếu map của phần tử trong mảng B đã bằng 1 thì chuyền thành 2. Cuối cùng duyệt map và in ra những phần tử được đánh dấu là 2.


Định dạng đầu vào:

Dòng 1 gồm N và M

Dòng 2 gồm N số trong mảng A[]

Dòng 3 gồm M số trong mảng B[]


Ràng buộc: 1<=N,M<=10^5


Định dạng đầu ra: In ra tập hợp của 2 mảng theo thứ tự xuất hiện trong mảng A[]


Input:
9 8
7 5 0 0 1 6 2 7 3
6 4 9 4 2 8 3 5
Output:
5 6 2 3

Lớn nhất, nhỏ nhất (set)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho mảng A[] gồm n phần tử, có 3 loại thao tác:

• Thao tác 1: Thêm phần tử X vào mảng

• Thao tác 2: Xóa mọi giá trị X khỏi mảng nếu X tồn tại trong mảng

• Thao tác 3: Tìm phần tử nhỏ nhất trong mảng

• Thao tác 4: Tìm phần tử lớn nhất trong mảng

Đối với thao tác 3 và 4 bạn hãy in ra phần tử lớn nhất, nhỏ nhất trong mảng A[]


Định dạng đầu vào:

• Dòng 1 nhập N là số lượng phần tử ban đầu trong mảng A[]

• Dòng thứ 2 nhập N phần tử ban đầu của mảng A[]

• Dòng 3 nhập số lượng thao tác Q

• Q dòng tiếp theo mỗi dòng mô tả 1 thao tác, trong đó nếu là thao tác 1 và 2 thì có thêm phần tử X.


Ràng buộc:

1<=N<=10^5

1<=Q<=10000

0<=A[i], X<=10^6


Input:
10
24 31 49 65 57 77 7 81 77 79
10
2 60
2 7
3
3
2 45
1 16
4
3
1 6
1 8
Output:
24
24
81
16

Phần tử riêng biệt (set)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho dãy số A[] gồm có N phần tử, bạn hãy liệt kê các giá trị xuất hiện trong dãy theo thứ tự xuất hiện, mỗi giá trị chỉ liệt kê một lần.


Định dạng đầu vào: Dòng đầu tiên là số nguyên N. Dòng thứ 2 là N số nguyên A[i]


Ràng buộc: 1≤ N ≤ 10^5; 0 ≤ A[i] ≤ 10^9;


Định dạng đầu ra: In ra các giá trị xuất hiện trong máng theo thứ tự xuất hiện.


Input:
8
1 2 3 2 1 3 4 8
Output:
1 2 3 4 8

Thuộc mảng thứ nhất không thuộc mảng thứ 2 (set)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho 2 mảng số nguyên, hãy đếm những phần từ thuộc mảng thứ nhất mà không thuộc mảng thứ 2.


Định dạng đầu vào:

Dòng dầu tiên là số lượng test case T. (I≤T≤100).

Môi test case gồm 3 dòng, dòng đâu tiên là số lượng phần tử của mảng thứ nhất và mảng thứ hai. (i ≤ n, m ≤ 1000)

Dòng thứ 2 là các số thuộc mảng thứ nhất. (-10^9<=ai<=10^9)

Dòng thứ 3 là các số thuộc mảng thứ hai. (-10^9<=ai<=10^9)


Định dạng đầu ra: Liệt kê các số thuộc mảng thứ nhất mà không thuộc mảng thứ hai theo thứ tự xuất hiện, nếu không tồn tại số nào in ra "NOT FOUND".


Input 01:
1
4 5
1 2 2 9
2 0 9 8 3
Output 01:
1
Input 02:
1
4 5
10 13 13 11
10 11 11 12 13
Output 02:
NOT FOUND

Số nằm trong mảng (set)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho một mảng số nguyên gồm n phần tử, với mỗi truy vấn hãy kiểm tra xem một số nào đó có nằm trong mảng hay không?


Định dạng đầu vào:

Dòng đầu tiên là số lượng test case T (1 < T <= 100)

Mỗi test case bao gồm nhiều dòng, dòng đầu tiên là số lượng phần tử trong mảng (1 < n <= 1000)

Dòng thứ 2 bao gồm n phần tử trong mảng (-10^9 <= ai <= 10^9)

Dòng thứ 3 là số lượng truy vấn q

Q dòng tiếp theo mỗi dòng là một số nguyên cần kiểm tra


Định dạng đầu ra: In ra YES nếu số cần kiểm tra xuất hiện trong mảng, ngược lại in NO


Input:
1
6
1 2 3 8 7 0
4
1
2
10
20
Output:
YES
YES
NO
NO

Số k tốt (set)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Hãy gọi một số là số k tốt nếu số đó chứa tất cả các chữ số không vượt quá chính nó k (0,...,k). Tý có một số k và một mảng A chứa n số. Tìm giúp Tý xem có bao nhiêu số đẹp k tốt trong A (đếm từng số mỗi khi nó xuất hiện trong mảng A).


Định dạng đầu vào: Dòng đầu tiên chứa n và k tương ướng với đề bài; n dòng tiếp theo mỗi dòng chứa một số ai là phần tử thứ i của mảng A (1 <= i <= n)


Ràng buộc: 1 <= n <= 10^5; 0 <= k <= 9; 1 <= ai <= 10^9; 1 <= i <= n


Định dạng đầu ra: In ra số lượng số k tốt trong dãy a


Input:
2 1
1
10
Output:
1

Các thanh socola (set)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Tèo chuẩn bị tổ chức một bữa tiệc và anh ấy có nhiều thanh chocolate, trong đó có một số thanh chocolate cùng loại. Anh ấy muốn tặng chocolate cho bạn bè của mình một cách hoàn hảo, tức là mỗi người bạn của Tèo chỉ nhận được một thanh chocolate và không có hai người bạn nào nhận được cùng một loại chocolate.

Yêu cầu: Hãy cho biết Tèo có thể tặng chocolate cho tối đa bao nhiêu người bạn?


Định dạng đầu vào: Dòng đầu tiên chứa số nguyên n là số lượng thanh chocolate, dòng thứ 2 chứa n số nguyên a1, a2..., an với ai là loại của thanh chocolate thứ i


Ràng buộc: 1 <= n <= 10^6; 0 <= ai <= 10^9


Định dạng đầu ra: Số nguyên duy nhất là số lượng người bạn tối đa mà Tèo có thể phát chocolate


Input 01:
3
1 2 2
Output 01:
2
Input 02:
6
6 1 3 6 3 1
Output 02:
3

Đếm số lượng từ khác nhau trong xâu - mỗi từ được nhập trên một dòng (xâu ký tự cơ bản)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho một xâu gồm nhiều từ, đếm số lượng từ khác nhau trong xâu (lưu ý các từ không phân biệt chữ hoa và chữ thường, không cho biết trước số lượng từ trong xâu, không sử dụng mảng string)


Ràng buộc: Số lượng từ có thể lên đến 1000 từ


Input:
hoc 
cong 
nghe 
day 
hoc 
cong 
nghe 
va 
lap 
trinh
Output:
7