Tìm Vị Trí Đầu Tiê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ử đã sắp xếp tăng dần (có thể có phần tử trùng nhau). Hãy tìm vị trí xuất hiện đầu tiên của số X trong dãy. Nếu không tìm thấy, in ra -1. (Các vị trí được đánh số từ 1 đến N).

Dữ liệu vào:

Dòng 1: N và X.

Dòng 2: N số nguyên của dãy A.

Dữ liệu ra:

Vị trí đầu tiên của X hoặc -1.

Ràng buộc:

1 <= N <= 10^5

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

Ví dụ:

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

Tìm Vị Trí Cuối Cùng

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

Point: 1

Tương tự bài trước, cho dãy A tăng dần. Hãy tìm vị trí xuất hiện cuối cùng của số X. Nếu không có in ra -1.

Dữ liệu vào:

Dòng 1: N và X.

Dòng 2: N số nguyên của dãy A.

Dữ liệu ra:

Chỉ số cuối cùng của X hoặc -1.

Ràng buộc:

1 <= N <= 10^5

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

Ví dụ:

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

Tần Suất Của X

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

Point: 1

Cho dãy A đã sắp xếp tăng dần. Hãy đếm xem số X xuất hiện bao nhiêu lần trong dãy.

Dữ liệu vào:

Dòng 1: N và X.

Dòng 2: N số nguyên dãy A.

Dữ liệu ra:

Số lần xuất hiện của X.

Ràng buộc:

1 <= N <= 10^5

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

Ví dụ:

Input:
7 2 
1 1 2 2 2 3 4
Output:
3

Lower Bound

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

Point: 1

Cho dãy A đã sắp xếp tăng dần. Với mỗi truy vấn X, hãy tìm số nhỏ nhất trong dãy A mà có giá trị lớn hơn hoặc bằng X. Nếu không có số nào thỏa mãn, in ra "Khong".

Dữ liệu vào:

Dòng 1: N và Q.

Dòng 2: Dãy A.

Q dòng tiếp theo: Mỗi dòng là một số X.

Dữ liệu ra:

Giá trị tìm được hoặc "Khong".

Ràng buộc:

1 <= N, Q <= 10^5

Ví dụ:

Input:
5 2 
1 4 5 8 9 
6 
10
Output:
8 
Khong

Upper Bound

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

Point: 1

Cho dãy A đã sắp xếp tăng dần. Với mỗi truy vấn X, tìm số nhỏ nhất trong dãy A mà lớn hơn hẳn X (lớn hơn chặt).

Dữ liệu vào:

Dòng 1: N và Q.

Dòng 2: Dãy A.

Q dòng tiếp theo: Mỗi dòng là số X.

Dữ liệu ra:

Giá trị tìm được hoặc "Khong".

Ràng buộc:

1 <= N, Q <= 10^5

Ví dụ:

Input:
5 2 
1 4 5 5 9 
5 
9
Output:
9 
Khong

Tính Căn Nguyên

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

Point: 1

Cho số nguyên dương N rất lớn. Hãy tìm số nguyên dương K lớn nhất sao cho K * K <= N. (Không dùng hàm sqrt có sẵn, hãy dùng tìm kiếm nhị phân).

Dữ liệu vào:

Một số nguyên dương N.

Dữ liệu ra:

Số nguyên K.

Ràng buộc:

1 <= N <= 10^18

Ví dụ:

Input:
10
Output:
3

Cặp số có hiệu bằng K

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

Input Format: Dòng thứ nhất là cặp số N, X; Dòng tiếp theo là N số A(i] 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 01:
5 4
1 2 3 4 5
Output 01:
1

Giải thích: Cặp số có hiệu bằng 4 là 5 và 1

Input 02:
5 5
1 2 3 4 5
Output 02:
-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

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

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

Mốc thời gian (cmp)

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

Point: 1

Cho N mốc thời gian, mỗi mốc gồm Giờ, Phút, Giây. Hãy sắp xếp các mốc thời gian này theo thứ tự tăng dần.

Dữ liệu vào:

Dòng 1: N.

N dòng tiếp theo: Mỗi dòng gồm 3 số nguyên h, m, s.

Dữ liệu ra:

Danh sách thời gian đã sắp xếp.

Ràng buộc:

1 <= N <= 1000

0 <= h < 24, 0 <= m, s < 60

Ví dụ:

Input:
2
12 30 15
12 30 10
Output:
12 30 10
12 30 15

Danh sách học sinh (cmp)

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

Point: 1

Mỗi học sinh có Tên (chuỗi, không dấu cách) và Điểm (số nguyên). Sắp xếp danh sách học sinh theo Điểm giảm dần. Nếu Điểm bằng nhau, sắp xếp theo Tên tăng dần (từ điển).

Dữ liệu vào:

Dòng 1: N.

N dòng tiếp theo: Mỗi dòng gồm Tên và Điểm.

Dữ liệu ra:

Danh sách đã sắp xếp.

Ràng buộc:

1 <= N <= 1000

Ví dụ:

Input:
3
Nam 8
Tuan 9
Binh 8
Output:
Tuan 9
Binh 8
Nam 8

Phân số (cmp)

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

Point: 1

Cho N phân số, mỗi phân số gồm Tử số và Mẫu số. Hãy sắp xếp các phân số theo giá trị tăng dần. (Lưu ý: Không nên dùng phép chia số thực để tránh sai số, hãy dùng nhân chéo).

Dữ liệu vào:

Dòng 1: N.

N dòng tiếp theo: Mỗi dòng chứa 2 số nguyên a (tử) và b (mẫu).

Dữ liệu ra:

Danh sách phân số a/b đã sắp xếp.

Ràng buộc:

1 <= N <= 1000

1 <= a, b <= 1000

Ví dụ:

Input:
2
1 2
1 3
Output:
1/3 1/2