Ôn tập Kỹ thuật 2 con trỏ ngày 28 - 04 - 26

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

In ra xâu con ngắn nhất chứa xâu T không phân biệt thứ tự

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 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

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

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

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

Kiểm tra n có phải toàn chữ số chẵn sử dụng đệ quy

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

Point: 1

Sử dụng đệ quy kiểm tra xem số nguyên dương n có chứa toàn chữ số chẵn, nếu đúng in ra 1, ngược lại in ra 0.

(bắt buộc phải sử dụng đệ quy)

Ràng buộc: Số lượng chữ số của n lớn hơn 1 và nhỏ hơn 100


Ví dụ:

Input:
24
Output:
1

Tính tổng các số lẻ trong mảng sử dụng đệ quy

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

Point: 1

Sử dụng đệ quy viết hàm tính tổng các chữ số lẻ trong mảng.


Ví dụ:

Input:
5
7 7 8 1 2
Output:
15