Cod sursa(job #2777326)

Utilizator AswVwsACamburu Luca AswVwsA Data 22 septembrie 2021 21:48:02
Problema Secv Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>
#include <set>
#include <climits>
using namespace std;
ifstream cin("secv.in");
ofstream cout("secv.out");
set <int> s;
set <int> :: iterator it;
int v[5005], n;
bool ok;
int len(int poz, set <int> :: iterator it) //lungimea sirului sau -1
{
    it++;
    int rez = -1;
    if (it == s.end())
        return 0;
    for (int i = poz; i <= n; i++)
        if (v[i] == *it)
            return i - poz + len(i, it);
    return INT_MIN;
}
int main()
{
    int poz, i;
    cin >> n;
    if (n == 0)
    {
        cout << -1;
        return 0;
    }
    for (i = 1; i <= n; i++)
    {
        cin >> v[i];
        s.insert(v[i]);
    }
    it = s.begin();
    int ans = -1;
    for (i = 1; i <= n; i++)
        if (v[i] == *s.begin())
        {
            int val = len(i, s.begin()) + 1;
            if (val > 0)
            {
                if (ans == -1)
                    ans = val;
                else
                    ans = min(ans, val);
            }
        }
   cout << ans;
}