Tổng các số âm liên tiếp nhỏ nhất

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

Point: 1

Nhập vào một mảng các số nguyên A có N phần tử, in ra tổng giá trị các số âm liên tiếp nhỏ nhất.


Ràng buộc: ~0 < N \leq 10^6~; ~-10^6 \leq A[i] \leq 10^6~


Dữ liệu vào gồm 2 dòng, dòng thứ nhất là số lượng N phần tử, dòng thứ 2 lần lượt là N phần tử trong mảng A.


Input 01:
10
5 1 4 1 -3 -2 1 2 -3 10
Output 01:
-5
Input 02:
10
5 1 -4 -1 -3 -2 1 2 3 -20
Output 02:
-20

Tìm số lượng số âm liên tiếp nhiều nhất trong mảng

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

Point: 1

Nhập vào một mảng các số nguyên A có N phần tử, in ra số lượng các số âm liên tiếp nhiều nhất trong mảng.


Ràng buộc: ~0 < N \leq 10^6~; ~-10^6 \leq A[i] \leq 10^6~


Dữ liệu vào gồm 2 dòng, dòng thứ nhất là số lượng N phần tử, dòng thứ 2 lần lượt là N phần tử trong mảng A.


Input 01:
10
-5 -1 -4 -1 3 -2 1 -2 -3 -10
Output 01:
4

Số lượng các số âm liên tiếp nhiều nhất trong mảng trên là 5

Input 02:
15
-5 -1 -4 -1 3 -2 1 -2 -3 -10 -11 -13 -15 -14 -12
Output 01:
8

Xác định mảng con (kỹ thuật 2 con trỏ)

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

Point: 1

Cho mảng A gồm N phần tử, bạn hãy xác định xem mảng B có M phần tử có phải là mảng con của mảng A hay không (không cần liên tiếp nhưng cần giữ đúng thứ tự các phần tử). Ví dụ mảng A là {1,1,2,8,9,3,4} thì mảng B = {1, 2, 9, 4} là mảng con của mảng A.


Ràng buộc: ~1 \leq M, N \leq 10^6~; ~1 \leq A[i], B[i] \leq 10^6~


Input 01:
7 4
1 1 2 8 9 3 4
1 2 9 4
Output 01:
YES
Input 02:
7 4
1 1 2 8 9 3 4
1 2 9 10
Output 02:
NO

Độ dài xâu ngắn nhất chứa xâu T (kỹ thuật 2 con trỏ)

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

Point: 1

Cho 2 xâu S và T, tìm xâu con ngắn nhất của S chứa đầy đủ và đúng thứ tự các ký tự trong T.


Ràng buộc: ~1 \leq len(T), len(S) \leq 10^3~

S, T chứa các ký tự in thường


In ra độ dài xâu con nhỏ nhất thỏa mãn, nếu không có xâu nào thỏa mãn in ra NOT FOUND


Input 01:
hoccohocnngnghehnc
hcn
Output 01:
4
Input 02:
hoccohocnngnghehnc
hwn
Output 02:
NOT FOUND

In ra xâu con ngắn nhất chứa xâu T không phân biệt thứ tự (kỹ thuật 2 con trỏ)

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

Point: 1

Cho 2 xâu S và T, tìm và in ra xâu con ngắn nhất của S chứa đầy đủ các ký tự trong T (lưu ý không cần đúng thứ tự trong T).


Ràng buộc: ~1 \leq len(T), len(S) \leq 10^6~

S, T chứa các ký tự in thường


In ra xâu con nhỏ nhất thỏa mãn, nếu không có xâu nào thỏa mãn in ra NOT FOUND


Input 01:
hoccohocnngnghehnc
henn
Output 01:
ngnghe
Input 02:
hoccohocnngnghehnc
henng
Output 02:
ngnghe
Input 03:
hoccohocnngnghehnc
htnng
Output 03:
NOT FOUND

Xâu con ngắn nhất (kỹ thuật 2 con trỏ)

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

Point: 1

Cho một xâu S gồm các chữ cái in thường, tìm xâu con liên tiếp ngắn nhất chứa đầy đủ các ký tự của S và in ra. Ví dụ xâu S = "abcaaaabcda" thì xâu con "bcda" là xâu con nhỏ nhất chứa đầy đủ các ký tự của S.


Ràng buộc: ~0 < len(S) \leq 10^6~


Input:
abcaaadabcda
Output:
bcda

Giải thích: Xâu con ngắn nhất chứa đầy đủ các ký tự của S là xâu bcda


Xâu con dài nhất (kỹ thuật 2 con trỏ)

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

Point: 1

Cho một xâu S gồm các chữ cái in thường, tìm xâu con liên tiếp dài nhất mà không có ký tự nào bị lặp lại, nếu có nhiều xâu con thỏa mãn thì in ra xâu con cuối cùng. Ví dụ xâu S = "abcaaaabcda" thì xâu con "bcda" là xâu con dài nhất mà không có ký tự nào bị lặp lại.


Ràng buộc: ~0 < len(S) \leq 10^6~


Input 01:
dabacdadbbdd
Output 01:
bacd
Input 02:
abcaaadabcda
Output 02:
bcda

Giải thích: Xâu con dài nhất cuối cùng không có ký tự nào bị lặp lại là xâu bcda


Dãy con liên tiếp có tổng lớn hơn hoặc bằng K (kỹ thuật 2 con trỏ)

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

Point: 1

Cho một mảng A có N phần tử. Hãy tìm dãy con gồm các phần tử liên tiếp có tổng các phần tử lớn hơn hoặc bằng K. Nếu có nhiều dãy con thì hãy in ra dãy con ngắn nhất đầu tiên xuất hiện, trong trường hợp không có dãy con nào thì in ra "NOT FOUND".


Ràng buộc: ~1 \leq N \leq 10^6~; ~0 \leq A[i] \leq 10^6~; ~0 \leq K \leq 10^9~


Input 01:
11 7
2 4 0 4 4 3 3 2 0 0 3
Output 01:
4 4
Input 02:
11 7
2 4 0 4 4 3 10 2 0 0 3
Output 02:
10
Input 03:
11 100
2 4 0 4 4 3 10 2 0 0 3
Output 03:
NOT FOUND

Căn hộ (kỹ thuật sắp xếp - tìm kiếm)

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

Point: 1

Có n người nộp đơn và m căn hộ miễn phí. Nhiệm vụ của bạn là phân phối các căn hộ sao cho càng nhiều người nhận được căn hộ càng tốt. Mỗi người nộp đơn có một kích thước căn hộ mong muốn và họ sẽ chấp nhận bất kỳ căn hộ nào có diện tích gần bằng kích thước mong muốn.


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

Dòng nhập đầu tiên có ba số nguyên n, m và k là số người đăng ký, số căn hộ và chênh lệch tối đa cho phép.

Dòng tiếp theo chứa n số nguyên a1, a2,.., an là diện tích căn hộ mong muốn của mỗi người đăng ký. Nếu kích thước mong muốn của người nộp đơn là x, người đó sẽ chấp nhận bất kỳ căn hộ nào có kích thước từ x - k đến x + k.

Dòng cuối cùng ghi m số nguyên b1, b2,..., bm: diện tích từng căn hộ.


Ràng buộc: 1 <= n, m ≤ 10^5; 0 <= k ≤ 10^9; 1 <= ai, bi ≤ 10^9


In một số nguyên: số người nộp đơn sẽ nhận được một căn hộ.


Input:
4 3 5
60 45 80 60
30 60 75
Output:
2

Xếp trẻ (kỹ thuật sắp xếp - tìm kiếm)

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

Point: 1

Có n đứa trẻ muốn đi đu quay và nhiệm vụ của bạn là tìm một chiếc thuyền Gondola cho mỗi đứa trẻ. Mỗi chiếc thuyền Gondola có thể trở được tối đa 2 đứa trẻ mà trọng lượng không được vượt quá x. Bạn biết cân nặng của mọi đứa trẻ, vậy số lượng thuyền Gondola tối thiếu cần thiết để trở hết số trẻ là bao nhiêu?


Định dạng đầu vào: Dòng nhập dầu tiên chửa hai số nguyên n và x là số đứa trẻ và trọng lượng tối đa cho phép. Dòng tiếp theo chứa n số nguyên p1, p2,.., pn là trọng lượng của mỗi đứa trẻ


Ràng buộc: 1 <= n ≤ 2.10^5; 1 <= X ≤ 10^9; 1 <= pi <= x;


Định dạng đầu ra: In một số nguyên: số lượng thuyền Gondola tối thiếu.


Input:
4 10
7 2 3 9
Output:
3

Khiêu vũ (kỹ thuật 2 con trỏ)

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

Point: 1

Trong lớp học có n bạn nam và m bạn nữ. Các bạn nam có chiều cao là a1, a2, ..., an. Các bạn nữ có chiều cao là b1, b2, .., bm. Nhân dịp lễ tổng kết cuối năm, cả lớp dự định tổ chức buổi khiêu vũ nhưng có điều kiện là trong một đôi khiêu vũ bất kỳ, bạn nam phải cao hơn bạn nữ. Và mỗi bạn không tham gia quá 1 đôi khiêu vũ. Hãy tính số lượng cặp đôi nhiều nhất thỏả mãn yêu cầu trên.


Đầu vào: gồm 3 dòng

  • Dòng thứ nhất là hai số n, m mỗi số cách nhau một khoảng trắng.

  • Dòng thứ hai gồm n số nguyên a1, a2, .., an là chiều cao các bạn nam.

  • Dòng thứ ba gồm m số nguyên b1, b2, .... bm là chiều cao các bạn nữ.


Ràng buộc: 1 <= n,m <= 10^5; 1 <= a[i],b[i] <=10^6


Input:
5 5
2668 2956 20933 21199 24224
11521 13084 19573 25628 28958
Output:
3

Cặp số có hiệu bằng x (kỹ thuật 2 con trỏ, sắp xếp - tìm kiếm)

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

Point: 1

Cho mảng AI gồm N phần tử và số X. Nhiệm vụ của bạn là tìm cặp phần tử A[i] - A[j] = X. Nếu tồn tại A[i] - A[j] = X đưa ra 1, ngược lại đưa ra -1.


Đầu vào: Dòng thứ nhất là cặp số N, X; Dòng tiếp theo là N số Ali) là các phần tử của mảng A.


Ràng buộc: 1≤ N ≤10^5; 1≤ X, A[i] ≤10^5.


Input:
5 4
8 4 3 1 7
Output:
1

Two sum (kỹ thuật 2 con trỏ)

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

Point: 1

Cho mảng A[] gồm N phần tử, hãy kiểm tra xem trong mảng có 2 phần tử bất kỳ có tổng bằng K hay không?


Định dạng đầu vào: Dòng đầu tiên là N và K; Dòng thứ 2 là N số trong mảng A[]


Ràng buộc:

• 1<=N<=5000

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


Định dạng đầu ra: In ra YES nếu tồn tại, ngược lại in ra NO


Input 01:
5 28
2 1 10 5 9
Output 01:
NO
Input 02:
7 12
8 3 8 5 5 9 8
Output 02:
YES

Sum of three values (kỹ thuật 2 con trỏ)

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

Point: 1

Cho mảng A gồm N phần tử và số nguyên k, hãy kiếm tra xem trong mảng có 3 phần tử A[i], A[j] và A[k] với i, j, k khác nhau và A[i] + A[j] + A[k] = K hay không?


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

Dòng đầu tiên là N và 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^9


Định dạng đầu ra: In ra YES nếu tồn tại, ngược lại in ra NO


Input 01:
7 5
7 2 5 10 10 8 8
Output 01:
NO
Input 02:
7 14
1 7 6 3 3 1 8
Output 02:
YES