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

Phần tử đầu tiên lớn hơn x trong dãy đã sắp xếp

Khi tra cứu ngưỡng trong một bảng đã sắp xếp, ta thường cần giá trị nhỏ nhất còn lớn hơn

C++Cơ bản15 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ủ đề

searchbinary-searchsorted-arrayentry-ramp

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

Nội dung đề bài

Mô tả bài toán

Khi tra cứu ngưỡng trong một bảng đã sắp xếp, ta thường cần giá trị nhỏ nhất còn lớn hơn một mốc cho trước, ví dụ bậc thuế kế tiếp hoặc mức lương nhỏ nhất vượt mức hiện tại.

Yêu cầu

Cho dãy n số nguyên không giảm (a1 <= a2 <= ... <= an) và một giá trị x. Hãy tìm phần tử đầu tiên trong dãy lớn hơn x (tức giá trị nhỏ nhất trong các giá trị > x) và in giá trị đó. Nếu cả dãy đều không lớn hơn x, in ra đúng một từ none.

Quy ước nộp bài

Nộp chương trình solution.cpp đọc dữ liệu từ stdin theo đúng định dạng trên và in ra stdout một dòng chứa giá trị tìm được hoặc từ none (chữ thường).

Input

  • Dòng 1: hai số nguyên n và x (1 <= n <= 30, -10000 <= x <= 10000).
  • Dòng 2: n số nguyên không giảm (-10000 <= ai <= 10000).

Output

Một dòng: giá trị cần tìm, hoặc từ none nếu mọi phần tử đều <= x.

Ràng buộc

  • Dãy có thể chứa giá trị trùng nhau.
  • So sánh đúng là > x, không phải >= x.
  • Mỗi bộ dữ liệu chạy trong 1 giây.

Ví dụ 1

Input

6 5
1 3 5 7 9 11

Output

7

Ví dụ 2

Input

5 5
1 2 3 4 5

Output

none

Giải thích

Dữ liệu vào:

Các giá trị lớn hơn 5 là 7, 9, 11, nhỏ nhất là 7, nên in ra 7.

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