Cod sursa(job #228075)

Utilizator rethosPaicu Alexandru rethos Data 6 decembrie 2008 13:11:35
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <stdio.h>
#include <algorithm>
#define NM 5001
#define INF 5001
using namespace std;
int n,m;
int k;
int c[NM];
int x[NM];
int rez=INF;
int main()
{freopen("secv.in","r",stdin);
 freopen("secv.out","w",stdout);
 scanf("%d",&n);
 int i,j;
 int sw;
 m=0;
 for (i=1;i<=n;i++)
        {scanf("%d",&x[i]);
         sw=1;
         for (j=1;j<i;j++)
                if (x[j]==x[i])
                        {sw=0;
                         break;
                        }
         if (sw) c[++m]=x[i];
        }
 if (m==1) {printf("1");return 0;}
 sort(c+1,c+m+1);
 for (i=n;i>=1;i--)
        if (x[i]==c[m])
                {sw=0;
                 k=m-1;
                 for (j=i-1;j>=1;j--)
                        {if (x[j]==c[k]) k--;
                         if (k==0)
                                {sw=1;
                                 break;
                                }
                        }
                 if (sw&&(i-j+1<rez)) rez=i-j+1;
                }
 if (rez==INF) printf("-1");
        else printf("%d",rez);
 return 0;
}