Cod sursa(job #1852242)

Utilizator raisacmtAxenie Raisa raisacmt Data 20 ianuarie 2017 17:06:38
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <cstdio>
#include<algorithm>
using namespace std;
int v[5005];
struct secv
{
    int x,y;
};
secv v1[5005];
bool cmp(secv a,secv b)
{
    return a.x<b.x;
}
int v2[5005];
int main()
{
    freopen("secv.in","r",stdin);
    freopen("secv.out","w",stdout);
    int n,i,j,k,min,max,st,dr,val,l;
    scanf("%d",&n);
    for(i=1; i<=n; i++){
    scanf("%d",&v[i]);
    v1[i].x=v[i];
    v1[i].y=i;
    }
    sort(v1+1,v1+n+1,cmp);
    j=1;
    v1[0].x=v1[1].x;k=0;
    for(i=1; i<=n; i++)
    {
        if(v1[i].x!=v1[i-1].x)
        j++;
        if(j==1)
        v2[++k]=v1[i].y;
        v[v1[i].y]=j;
    }
    max=j;
    min=5001;
    for(i=1;i<=n;i++)
    {
        if(v[i]==1)
        {
            k=2;
            for(j=i;j<=n;j++)
            {
                if(v[j]==k)
                    k++;
                if(k==max+1)
                {
                    if(j-i+1<min)
                        min=j-i+1;
                    break;
                }
            }
        }
    }
    if(min==5001)
    min=-1;
    printf("%d",min);
    return 0;
}