Chương trình bắt buộc phải in ra chỉ-số 1-based nhỏ nhất i thoả a[i] == T, và in -1 nếu không có phần tử nào bằng T.
Kết quả không được phụ thuộc vào worker nào chạy nhanh hơn hay báo về trước. Với cùng một input, mọi lần chạy phải cho ra cùng một đáp án. Cụ thể:
T trong shard của mình. Chỉ-số mà worker đầu tiên gửi về kênh hit không nhất thiết là chỉ-số nhỏ nhất — lấy ngay giá trị đó là sai.hit cho tới khi kênh đóng, sau khi tất cả worker đã thoát) rồi lấy giá trị nhỏ nhất trong số đó.done để huỷ sớm chỉ nhằm tiết kiệm công quét, tuyệt đối không được làm đổi đáp án. Một worker chỉ được phép bỏ dở phần shard còn lại khi mọi chỉ-số nó còn có thể tìm thấy đều lớn hơn kết quả tốt nhất đã biết tại thời điểm đó.Gợi ý cách làm tất định: mỗi worker quét shard của mình theo thứ tự chỉ-số tăng dần và gửi về chỉ-số khớp đầu tiên trong shard rồi kết thúc (như vậy mỗi worker gửi tối đa một giá trị, kênh hit với bộ đệm M không bao giờ bị nghẽn). Main nhận hết mọi giá trị, lấy min, rồi in ra min + 1.
Dòng 1: N M T (1 ≤ M ≤ 16, 1 ≤ N ≤ 10^5, |T| ≤ 10^9). Dòng 2: N số nguyên.
N ≤ 10^5; M ≤ 16
Một số nguyên: chỉ-số 1-based nhỏ nhất chứa T, hoặc -1.
Ví dụ:
Đầu vào:
8 3 7
1 2 7 3 7 4 7 5
Đầu ra:
3
Giải thích:
Đang tải editor...