cpp-312Đọc toàn bộ đề miễn phí

Tìm vị trí xuất hiện đầu tiên của một giá trị

Dãy điểm kiểm tra được lưu theo đúng thứ tự chỗ ngồi trong lớp, nên dãy không được sắp

C++Cơ bản10 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

searchlinear-searcharrayentry-ramp

Kiến thức tiên quyết: cpp-basics, arrays.

Nội dung đề bài

Mô tả bài toán

Dãy điểm kiểm tra được lưu theo đúng thứ tự chỗ ngồi trong lớp, nên dãy không được sắp xếp. Khi cần biết bạn đầu tiên đạt đúng một mức điểm nào đó, ta phải đi từ đầu dãy và dừng lại ngay ở lần gặp đầu tiên chứ không thể nhảy cóc.

Yêu cầu

Cho n số nguyên và một giá trị x. Hãy in ra vị trí (đếm từ 1) của phần tử đầu tiên bằng x trong dãy. Nếu dãy không có phần tử nào bằng x, in ra -1.

Quy ước nộp bài

Nộp chương trình solution.cpp đọc dữ liệu từ stdin đúng theo định dạng trên và in kết quả ra stdout. Chỉ in một số nguyên, vị trí đếm từ 1.

Input

  • Dòng 1: số nguyên n (1 <= n <= 30).
  • Dòng 2: n số nguyên a1 a2 ... an (-10000 <= ai <= 10000).
  • Dòng 3: số nguyên x (-10000 <= x <= 10000).

Output

Một số nguyên duy nhất: vị trí đầu tiên tính từ 1 của x trong dãy, hoặc -1 nếu x không xuất hiện trong dãy.

Ràng buộc

  • Dãy không được sắp xếp sẵn, nên không được dùng tìm kiếm nhị phân.
  • Mỗi bộ dữ liệu chạy trong 1 giây, bộ nhớ không đáng kể.
  • Không cần in dấu cách hay dòng trống thừa.

Ví dụ 1

Input

5
1 3 5 7 9
5

Output

3

Ví dụ 2

Input

4
2 4 4 4
4

Output

2

Giải thích

Dữ liệu vào:

Giá trị 5 nằm ở vị trí thứ 3 tính từ đầu dãy, nên kết quả in ra là 3.

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.

Nhóm Zalo