Tìm giá trị nhỏ nhì của dãy số

21
Lập trình C++

Bài 8. Tìm giá trị nhỏ nhì (nếu có) của dãy số và đưa ra các vị trí đạt giá trị đó. Nếu không có thì ghi ra -1. Ví dụ: 

MIN2.INP

MIN2.OUT

6
27 13 24 19 17 20

5

Code tham khảo:

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

int main () {
    freopen("MIN2.INP","r",stdin);
    freopen("MIN2.OUT","w",stdout);
    int n, a[1000], b[1000];
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    for (int i = 0; i < n; i++) {
        b[i] = a[i];
    }
    sort(b, b+n);
    for (int i = 0; i < n; i++) {
        if (a[i] == b[1])
            cout << i+1;
    }
    if (b[1] == b[0]) cout << -1;
    return 0;
}