MẢNG XOAY

Xem dạng PDF

Gửi bài giải

Điểm: 10,00 (OI)
Giới hạn thời gian: 0.04s
Giới hạn bộ nhớ: 64M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C++, Python

Cho mảng số nguyên ~a_0,a_1,…,a_{n-1}~ được sắp xếp theo thứ tự tăng dần (với các giá trị khác nhau). Mảng a có thể bị xoay tại một vị trí không xác định k (0<k<n) sao cho mảng kết quả là ~a_k,a_{k+1},…,a_{n-1},a_0,a_1,…,a_{k-1}~. Ví dụ, [0,1,2,4,5,6,7] có thể bị xoay tại vị trí 3 và trở thành [4,5,6,7,0,1,2].</p>

Cho mảng a sau khi xoay và một số nguyên t, trả về chỉ số của t nếu nó xuất hiện trong a, hoặc -1 nếu nó không nằm trong a.

Yêu cầu:

Thuật toán tìm kiếm phải có độ phức tạp O(log n).

Dữ liệu:

Dòng 1: Chứa mảng số nguyên ~a_0,a_1,…,a_{n-1}~.
Dòng 2: Chứa số nguyên t cần tìm.

Kết quả:

Một dòng duy nhất là kết quả tìm được.

Giới hạn:

  • ~1≤n≤10^5.~
  • ~-10^9≤a_i≤10^9.~

Input 1

4 5 6 7 0 1 2
0

Output 1

4

Input 2

4 5 6 7 0 1 2
3

Output 2

-1

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.