Cod sursa(job #2776327)

Utilizator AswVwsACamburu Luca AswVwsA Data 19 septembrie 2021 12:47:59
Problema Secv Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <set>
#include <climits>
using namespace std;
ifstream cin("secv.in");
ofstream cout("secv.out");
int v[5005];
set <int, greater <int> > s;
int main()
{
    int n, i, mn = INT_MAX;
    cin >> n;
    for (i = 1; i <= n; i++)
    {
        cin >> v[i];
        s.insert(v[i]);
        mn = min(mn, v[i]);
    }
    int pozant = n + 1;
    int last, first;
    for (set <int> :: iterator it = s.begin(); it != s.end(); it++)
    {
        bool ok = 0;
        for (i = pozant - 1; i >= 1; i--)
            if (v[i] == *it)
            {
                ok = 1;
                if (it == s.begin())
                    last = i;
                if (*it == mn)
                    first = i;
                pozant = i;
                break;
            }
        if (!ok)
        {
            cout << -1;
            return 0;
        }
    }
    cout << last - first + 1;
}