Cod sursa(job #1060627)

Utilizator DGVanceaDragos Gabriel Vancea DGVancea Data 18 decembrie 2013 10:57:51
Problema Secv Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");

int z[5001],y[5001];

int main()
{
    int n,ok=0;
    int min1=5001;
    fin>>n;
    long long x[n+1];
    for(int i=1; i<=n; i++)
    {
        fin>>x[i];
        y[i]=x[i];
    }
    if(n==1)
    {
        min1=1;
        ok=1;
    }
    else
    {
        sort(y+1,y+n+1);

        int u=1;
        for(int i=1; i<=n; i++)
            if(y[i]!=z[u-1])
            {
                z[u]=y[i];
                u++;
            }
        for(int i=1; i<n; i++)
            if(x[i]==z[1])
            {
                int c=1,p=2;
                for(int j=i+1; j<=n; j++)
                {
                    c++;
                    if(x[j]==z[p])p++;
                    if(p==u)
                    {
                        if(c<min1)
                        {
                            min1=c;
                            ok=1;
                        }
                        break;
                    }
                }
            }

    }
    if(ok)fout<<min1;
    else fout<<"-1";
    return 0;
}