Cho một dãy gồm n số nguyên dương A1,A2,…,An. (N≤105,Ai≤109). Hãy in số nhỏ nhất cùng chỉ số của nó, nếu có nhiều số nhỏ nhất thì in ra các chỉ số của nó. Input: Dòng đầu chứa số n, 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, dòng thứ hai chỉ số của nó. Input 6 91 32 43 32 451 54 Output 32 2 4

2 câu trả lời

#include <stdio.h>

int min(int a, int b) {
    if (a < b) return a; return b;
}

int main() {
    int n;
    scanf("%d", &n);
    int a[n], m = 1e9;
    
    for (int i = 1; i <= n; ++i) scanf("%d", &a[i]), m = min(m, a[i]);
    printf("%d\n", m);
    
    for (int i = 1; i <= n; ++i) 
        if (a[i] == m) 
            printf("%d ", i);
}

*Python:

n=int(input())
a=list(map(int,input().split()))
mn=min(a)
print(mn)
for i in range (n):
    if (a[i]==mn):
        print(i+1,end=" ")

*C++ (không giỏi C++ lắm nhé):

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