arr03 c++ Cho một dãy gồm n số nguyên dương A1,A2,…,An. (N≤10^5,Ai≤10^9) và số 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 và K, dòng thứ hai chứa n số nguyên dương A1,A2,…,An. 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ó. Input 6 35 91 32 43 43 451 54 Output 43 3 4

2 câu trả lời

#include<bits/stdc++.h>
using namespace std;
int main()
{
 long long n,m,t=9999999999;
 cin>>n>>m;
 long long a[n];
 for (int i=0 ;i<n ;i++)
 {
  cin>> a[i];
  if (a[i] > m && a[i] < t) t=a[i]; 
 }
 cout<<t<<endl;
 for (int i=0 ;i<n ;i++)
 if (t==a[i]) cout<<i+1<<" ";
}

#include <iostream>
#include <vector>
using namespace std;

int n,cnt,m,k,x;
vector<int> v;

int main() {
    m = 1e9;
    cin >> n >> k;
    for (int i = 1;i <= n;i++) {
        cin >> x;
        if (x == m)
            v.push_back(i);
        if (x > k && x < m) {
            v.clear();
            m = x;
            v.push_back(i);
        }
    }
    cout << m << '\n';
    for (auto x: v)
        cout << x << ' ';
}

Câu hỏi trong lớp Xem thêm