Điểm:
100 (p)
Thời gian:
1.0s
Bộ nhớ:
1023M
Input:
bàn phím
Output:
màn hình
Cho dãy số nguyên \(a\) gồm \(n\) phần tử được sắp xếp tăng dần. Hãy xác định giá trị lớn nhất của \(i\) sao cho \(a_i \le x\). Nếu không có vị trí thõa mãn in ra \(0\).
Input
- Dòng đâu tiên chứa số hai số nguyên dương \(n\) và \(k\) - độ dài của dãy, số câu hỏi. \((n, k \leq 100000)\)
- \(n\) số, các phần tử dãy \(a\) \((-10^9 \le a_i \le 10^9)\)
- \(k\) số nguyên dương \(x\) \((-10^9 \le x \le 10^9)\).
Output
- Gồm \(k\) dòng, mỗi dòng chứa câu trả lời cho mỗi câu hỏi.
Example
Test 1
Input
5 5
3 3 5 8 9
2 4 8 1 10
Output
0
2
4
0
5
Bình luận
Hint
Chúng ta sẽ nghĩ đến việc sử dụng tìm kiếm nhị phân.
Giải thích code :
Trước tiên, chúng ta sẽ giải thích về thuật toán:
x
cho trước, nếux
<= arr[mid] thì chúng ta sẽ xóa đoạn mid -> R. Hay đặt R lại bằng m - 1. Đặt r đằng trước m. Nên R = m - 1x
thì chúng ta sẽ xóa đoạn mid -> L. Hay đặt L lại bằng m + 1. Đặt l đằng sau m. Nên L = m + 1Giải thích code mẫu:
bài này hơi khó
em vẫn còn chưa hiểu.Mấy anh giải thích vì sao k :Đ
em ngu văn lắm nên không biết đọc đề
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.