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 << " ";
}