Nhỏ nhất

Xem PDF

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1023M Input: bàn phím Output: màn hình

Cho một dãy gồm \(n\) số nguyên dương \(a_{1}, a_{2}, \ldots, a_{n}\) và số nguyên dương \(k\).

Hãy in số nhỏ nhất lớn hơn \(k\) cùng chỉ số của nó, nếu có nhiều số nhỏ nhất lớn hơn \(k\) thì in ra các chỉ số của nó.

Input

  • Dòng đầu chứa số \(n\)\(k\) \((1 \leq n \leq 10^{5}, 1 \leq k \leq 10^{9})\).
  • Dòng thứ hai chứa \(n\) số nguyên dương \(a_{1}, a_{2}, \ldots, a_{n}\) \((1 \leq_{i} \leq 10^{9})\).

Output

  • Dòng đầu chứa số có giá trị nhỏ nhất lớn hơn \(k\), dòng thứ hai chứa các chỉ số của nó.

Example

Test 1

Input
6 35
91 32 43 43 451 54
Output
43
3 4

Bình luận


  • 0
    quylam24012011    9:20 a.m. 25 Tháng 7, 2024

    include <iostream>

    using namespace std;
    int a[100001],b[100001];
    int n,m;
    int main()
    {
    cin>>n>>m;
    for (int i=0;i<n;i++)cin>>a[i];
    for (int i=0;i<n;i++)b[i]=0;
    int x;
    for (int i=0;i<n;i++)if (a[i]>m)
    {
    x=a[i];
    b[i]=x;
    }
    int y=b[0];
    for (int i=1;i<n;i++)if (b[i]!=0)
    {
    y=b[i];
    break;
    }
    for (int i=1;i<n;i++)if (b[i]!=0&&b[i]<y)y=b[i];
    cout<<y<<endl;
    for (int i=0;i<n;i++)if (a[i]==y)cout <<i+1<<" ";
    }

    • 7 bình luận nữa