Cod sursa(job #1130730)

Utilizator DenisacheDenis Ehorovici Denisache Data 28 februarie 2014 15:15:38
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("secv.in");
ofstream g("secv.out");
int v[5005],sep[5005],i,k,n;
int main()
{
    f>>n;
    for (i=1;i<=n;i++)
    {
        f>>v[i];
        sep[i]=v[i];
    }
    sort(sep+1,sep+n+1);
    k=1;
    for (i=2;i<=n;i++)
    {
        if (sep[k]!=sep[i]) sep[++k]=sep[i];
    }
    register int ok=0,j,x,minim=(1<<30),secv,okf=0;
    for (i=n;i>=k-1;i--)
    {
        if (v[i]==sep[k])
        {
            ok=1;
            for (j=i,x=k;j>0;j--)
            {
                if (v[j]==sep[x])
                {
                    x--;
                    if (x==0){ok=0; break;}
                }
            }
            if (ok==0)
            {
                okf=1;
                secv=i-j+1;
                if (secv<minim) minim=secv;
            }
        }
    }
    if (okf) g<<minim;
    else g<<"-1";
    return 0;
}