Tìm Kiếm Trong Mảng Sắp Xếp (tìm kiếm nhị phân)

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

Point: 1

Cho một dãy số nguyên A gồm N phần tử đã được sắp xếp theo thứ tự tăng dần. Có Q truy vấn, mỗi truy vấn gồm một số nguyên X. Hãy kiểm tra xem X có xuất hiện trong dãy A hay không.

Dữ liệu vào:

Dòng 1: Hai số nguyên N và Q.

Dòng 2: N số nguyên là các phần tử của dãy A.

Q dòng tiếp theo: Mỗi dòng chứa một số nguyên X cần tìm.

Dữ liệu ra:

Với mỗi truy vấn, in ra "YES" nếu X xuất hiện trong A, ngược lại in ra "NO".

Ràng buộc:

1 <= N, Q <= 10^5

A[i]|, |X| <= 10^9


Ví dụ:

Input:
5 3 
1 3 5 7 9 
3 
4
9
Output:
YES 
NO 
YES

Tìm kiếm cơ bản (bs)

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

Point: 1

Cho một dãy số nguyên A gồm N phần tử đã được sắp xếp theo thứ tự tăng dần. Hãy kiểm tra xem số nguyên X có xuất hiện trong dãy hay không.

Dữ liệu vào:

Dòng đầu tiên chứa hai số nguyên dương N và X.

Dòng thứ hai chứa N số nguyên A[1], A[2], ..., A[N], các số cách nhau bởi dấu cách.

Dữ liệu ra:

In ra "YES" nếu X xuất hiện trong dãy, ngược lại in ra "NO".

Giới hạn:

1 <= N <= 10^5

|A[i]|, |X| <= 10^9

Ví dụ:

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

Vị trí của X

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

Point: 1

Cho dãy số A gồm N số nguyên đã sắp xếp tăng dần. Hãy tìm chỉ số (vị trí) của số X trong dãy. Nếu X không tồn tại, in ra -1. Quy ước chỉ số bắt đầu từ 1.

Dữ liệu vào:

Dòng 1: N và X.

Dòng 2: N số nguyên A[i].

Dữ liệu ra:

Một số nguyên duy nhất là vị trí của X hoặc -1.

Giới hạn:

1 <= N <= 10^5

Các phần tử trong mảng đôi một khác nhau.

Ví dụ:

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

Tìm kiếm trong mảng giảm dần

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

Point: 1

Cho dãy số A gồm N phần tử được sắp xếp theo thứ tự GIẢM dần. Hãy kiểm tra xem X có tồn tại trong dãy không.

Dữ liệu vào:

Dòng 1: N và X.

Dòng 2: N số nguyên A[i] (A[1] >= A[2] >= ... >= A[N]).

Dữ liệu ra:

In ra "YES" hoặc "NO".

Giới hạn:

1 <= N <= 10^5

Ví dụ:

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

Tìm kiếm vị trí đầu tiên của phần tử x trong mảng

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

Point: 1

Cho một mảng A nguyên gồm N phần tử đã sắp xếp tăng dần, hãy tìm chỉ số của phần tử x xuất hiện đầu tiên trong mảng, ví dụ mảng 1, 3, 4, 5, 5, 5, 6, 7. Nếu tìm số x = 5 thì số 5 xuất hiện đầu tiên sẽ có chỉ số 3, in ra chỉ số này. Nếu không tìm thấy in ra -1.


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


Input 01:
8 5
1 3 4 5 5 5 6 7
Output 01:
3
Input 02:
7 -3
-3 -3 -1 4 5 6 7
Output 02:
0
Input 03:
6 10
1 3 4 5 6 7
Output 03:
-1

Tìm kiếm phần tử xuất hiện cuối cùng

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

Point: 1

Cho một mảng A nguyên gồm N phần tử, hãy tìm chỉ số của phần tử xuất hiện cuối cùng trong mảng, ví dụ mảng 1, 3, 4, 5, 5, 5, 6, 7. Nếu tìm số 5 thì số 5 xuất hiện cuối cùng sẽ có chỉ số 5, chỉ số này được in ra. Nếu không tìm thấy thì in ra -1


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


Input 01:
8 5
1 3 4 5 5 5 6 7
Output 01:
5
Input 02:
7 -3
-3 -3 -1 4 5 6 7
Output 02:
1
Input 03:
6 10
1 3 4 5 6 7
Output 03:
-1

Vị trí đầu tiên lớn hơn hoặc bằng X

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

Point: 1

Cho mảng A gồm N phần tử. Sử dụng hàm có sẵn tìm vị trí đầu tiên của phần tử lớn hơn hoặc bằng X.


Dòng đầu tiên nhập N và X

Dòng tiếp theo nhập N giá trị của mảng A


In ra vị trí nếu tìm thấy, nếu không tìm thấy thì in ra N.


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


Input 01:
10 6
3 5 6 6 6 6 9 10 11 13
Output 01:
2

Vị trí đầu tiên trong mảng lớn hơn hoặc bằng 6 là vị trí có chỉ số là 2 (có giá trị là 6)

Input 02:
10 14
3 5 6 6 6 6 9 10 11 13
Output 02:
10

Số nhỏ nhất lớn hơn Ai

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

Point: 1

Cho mảng A gồm n phần tử. Nhiệm vụ của bạn là tìm giá trị nhỏ nhất (phải thuộc mảng A) lớn hơn Ai (i = 0, 1, 2,, n-1). Đưa ra ký tự _ nếu Ai không có phần từ lớn hơn nó. Ví dụ với mảng A = (13, 6, 7, 12) ta có kết quả là (_ , 7, 12, 13).


Định dạng đầu vào: Dòng đầu tiên đưa vào n là số phần tử của mảng A; Dòng kế tiếp đưa vào n số A[i] của mảng; các số được viết cách nhau một vài khoảng trống.


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


Định dạng đầu ra: Đưa ra kết quả trên 1 dòng


Input:
9
6 3 9 8 10 2 1 15 7
Output:
7 6 10 9 15 3 2 _ 8

Hàm tìm kiếm nhị phân

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

Point: 1

Cho một mảng A các số nguyên có N phần tử, sử dụng hàm tìm kiếm nhị phân có sẵn để tìm kiếm giá trị X nhập từ bàn phím


Dòng đầu tiên nhập N và X

Dòng tiếp theo nhập N giá trị của mảng A


In ra FOUND nếu tìm thấy và NOT FOUND nếu không tìm thấy


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


Input:
5 6
3 5 6 9 13
Output:
FOUND

Đếm số lần xuất hiện của x trong mảng sử dụng tìm kiếm nhị phân

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ử và một số nguyên X, đếm xem X xuất hiện bao nhiêu lần trong mảng.


Ràng buộc: ~0 < N \leq 10^6~; ~-10^6 \leq A[i], X \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ử và X, dòng thứ 2 lần lượt là N phần tử trong mảng A.

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

Số 3 xuất hiện 1 lần trong mảng

Input 02:
6 2
1 3 1 4 1 7
Output 02:
0