Cod sursa(job #1221802)

Utilizator rangerChihai Mihai ranger Data 21 august 2014 14:57:16
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
#include<algorithm>
using namespace std;
const int nmax = 5010;

ifstream cin("secv.in");
ofstream cout("secv.out");

int n,a[nmax],b[nmax],t[nmax],aux[nmax],sol=nmax;

int main()
{
    cin>>n;
    if (n==0) {cout<<"0"; return 0;}
    for (int i=1;i<=n;i++) cin>>a[i],aux[i]=a[i];
    sort(aux+1,aux+n+1);
    aux[0]=-1;
    int nrdis=0;
    for (int i=1;i<=n;i++)
        if (aux[i]!=aux[i-1]) t[++nrdis]=aux[i];
    int k=1;
    for (int i=1;i<=n-nrdis+1;i++) {
        int j=i,k=1;
        if (t[1]==a[i])
        {
            for(j=i;j<=n && k<=nrdis;j++)
                if (a[j]==t[k]) k++;
            if (k-1==nrdis  &&  j-i<sol)
                sol=j-i;
        }
    }
    if (sol==nmax) cout<<"-1"; else
    cout<<sol;
    return 0;
}