Cod sursa(job #1360405)

Utilizator danysilas23Silas Daniel danysilas23 Data 25 februarie 2015 14:31:29
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
//#include<iostream>
#define NMAX 5001
using namespace std;
long max,poz,x[NMAX],y[NMAX],i,j,n,m,k,l,a,s;
int main()
{
    ifstream cin("secv.in");
    ofstream cout("secv.out");
    cin>>n;
    for (i=1;i<=n;i++)
    {
        cin>>x[i];
        y[i]=x[i];
    }
    a=1;
    while (a)
    {
        a=0;
        for (i=1;i<n;i++)
        if (y[i]>y[i+1]) {a=y[i]; y[i]=y[i+1]; y[i+1]=a; a=1;}
    }
    y[n+1]=-1;
    for (i=1;i<=n;i++)
    if (y[i]!=y[i+1]) y[++y[0]]=y[i];
    int max=6000;
    for (i=1;i<=n;i++)
        if (x[i]==y[1])
        {
            m=y[0]-1;
            j=i;
            poz=2;
            while (j<=n&&m)
            {
                j++;
                if (x[j]==y[poz]) {poz++; m--;}
            }
            if (m==0&&j-i+1<max) max=j-i+1;

        }
        if (max==6000)
         cout<<"-1"<<'\n';
         else

    cout<<max<<'\n';
    return 0;
}