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

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

Sum of four 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ó 4 phần tử A[i], A[j], A[k] và A[l] với i, j, k và l khác nhau và A[i] + A[j] + A[k] + A[l] = 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

Smaller count (kỹ thuật 2 con trỏ)

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

Point: 1

Cho 2 mảng A[] và B[] có N và M phần tử đã được sắp xếp theo thứ tự tăng dần, nhiệm vụ của bạn là đối với mỗi phần tử trong mảng B[] hãy đếm xem trong mảng A[] có bao nhiêu phần từ nhỏ hơn nó.


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

Dòng đầu tiền là N và M

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

Dòng 3 là M số trong mảng B[]


Ràng buộc:

1<=N,M<=10^7

1<=A[i], B[i]<= 10^9


Định dạng đầu ra: In ra đáp án của bài toán


Input:
6 3
1 2 3 4 5 6
4 5 6
Output:
3 4 5

Number of equal

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

Point: 1

Cho 2 mảng A[] và B[] có N và M phần từ đã được sắp xếp theo thứ tự tăng dần, nhiệm vụ của bạn là hãy đếm xem trong 2 mảng tồn tại bao nhiêu cặp i,j sao cho A[i] = B[j]


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

Dòng đầu tiên là N và M

Dòng 2 là N số trong màng A[]

Dòng 3 là M số trong mảng B[]


Ràng buộc:

1<=N,M<=10^7

1<=A[i], B[i]<= 10^9


Định dạng đầu ra: In ra đáp án của bài toán


Input 01:
5 5
1 2 3 4 5
3 4 5 6 7
Output 01:
3
Input 02:
6 6
1 2 2 3 4 5
2 2 3 4 5 6
Output 02:
7

Phát quà Noel 1

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

Point: 1

Nhân địp lễ Giáng Sinh 2122, Học Công Nghệ tổ chức phát quà cho các bạn nhỏ. Có N món quà được xếp thành hàng ngang, mỗi món quà đều có khối lượng cho trước. Tèo là một đứa trẻ cũng như nhiều đứa trẻ khác chỉ muốn có càng nhiều phần quà càng tốt, không cần biết tới khối lượng của từng mỗn quà nặng nhẹ ra sao.

Tuy nhiên chiếc túi của Tèo chỉ mang được trọng lượng tối đa là S. Bạn hãy xác định xem số lượng phần quà mà Tèo có thể lựa chọn tối đa là bao nhiêu để có thể không vượt quá trọng lượng tối đa mà cái túi có thể chịu được. Ngoài ra trong lúc chọn quà Tèo chỉ có thể chọn các phần quà xếp cạnh nhau mà thôi.


Định dạng đầu vào: Dòng đầu tiền là N và S; Dòng thứ 2 là trọng lượng của N phần quà


Ràng buộc:

1<=N<=10^6

1<=S<=10^9

Trọng lượng các phần quà là số nguyên dương không quá 10^6


Định dạng đầu ra: In ra số phần quà tối đa mà Tèo có thể lấy được


Input:
11 10
3 1 4 1 5 3 4 1 5 2 2
output:
4

Phát quà Noel 2

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

Point: 1

Nhân dịp lễ Giáng Sinh 2122, Học Công Nghệ tổ chức phát quà cho các bạn nhỏ. Có N món quà được xếp thành hàng ngang, mỗi món quà đều có khối lượng cho trước. Tí là một đứa trẻ không như nhiều đứa trẻ khác, Tí chỉ muốn chọn ít phần quà càng tốt miễn là tổng các phần quà này lớn hơn hoặc bằng S. Tí chỉ có thể lựa chọn các phần quà đặt cạnh nhau, bạn hãy xác định xem Tí có thể chọn tối thiểu bao nhiêu phần quà để tổng khối lượng của các phần quà lớn hơn hoặc bằng S.


Định dạng đầu vào: Dòng đầu tiên là N và S; Dòng thứ 2 là trọng lượng của N phần quà


Ràng buộc:

1<=N<=10^6

1<=S<=10^9

Trọng lượng các phân quà là số nguyên dương không quá 10^6


Định dạng đầu ra: In ra số lượng phần quà ít nhất có thể hoặc in ra -1 nếu không tồn tại đáp án.


Input:
14 14
4 4 5 1 3 1 3 4 1 1 5 4 1 4
Output:
4

Seg Count 1 (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 số nguyên và số nguyên S, 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à tổng không vượt quá S.


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

Dòng đầu tiền là N và S

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


Ràng buộc:

1<=N<=10^6

1<=A(i]<=10^6

1<=S<=10^9


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


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

Giải thích: Có 10 mảng con thỏa mãn là: [3], [3, 1], [1], [1, 4], [4], [3] (ở vị trí index 3), [5], [3] (ở vị trí index 6), [3, 1], [1]


Seg Count 2 (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 số nguyễn và số nguyên S, 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à tổng lớn hơn hoặc bằng S


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

• Dòng đầu tiền là N và S

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


Ràng buộc:

• 1<=N<=10^6

• 1<=A(i]<=10^6

• 1<=S<=10^9


Định dạng đầu ra: In ra số lượng mảng con thoa mãn


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