SORTEDROTATED

(sortedrotated.*)

Tìm một phần tử \(x\) trong dãy đã được sắp xếp và quay vòng.

Một dãy được sắp xếp và quay vòng có dạng: nửa dãy đầu có giá trị tăng dần, rồi dãy tiếp theo cũng tăng dần. Dãy này có được từ dãy tăng dần dịch trái \(k\) vị trí.

Ví dụ: A={3,4,5,1,2}; {4, 5, 1, 2, 3} là một dãy quay vòng đã được sắp xếp. Cần tìm một phần tử có giá trị \(x\) trong dãy

Dữ liệu vào:

  • Dòng đầu ghi số lượng testcase \(T\ (1 \leq T \leq 100)\). Mỗi testcase gồm:

    • Số nguyên \(n\ (1 \leq n \leq \ 10^{7})\)

    • Dòng thứ hai ghi \(n\) số nguyên cách nhau bởi dấu cách, các phần tử được đánh chỉ số từ 0 \((|a_{i}|\ \leq \ 10^{8},\ 0 \leq i \leq n)\)

    • Dòng thứ 3 ghi số nguyên \(x\ (1 \leq x \leq 10^{8})\)

    • Dữ liệu đảm bảo dãy đã cho là dãy được sắp xếp vòng, các phần tử trong dãy khác nhau đôi một (\(a_{i}\
      eq \ a_{j}\)
      với \(\forall i\
      eq \ j\)
      )

Kết quả: Với mỗi test, ghi một số nguyên là vị trí phần tử \(x\) trong dãy, nếu không tồn tại phần tử \(x\), hãy in ra \(- 1\).

Ví dụ:

Input Output
3
9
5 6 7 8 9 10 1 2 3
10
3
3 1 2
1
4
3 5 1 2
6
5
1
-1

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. npk1605 (5/10)
  2. tuythoi213 (4/6)
  3. bao_khanh (2/3)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]