Cod sursa(job #228058)

Utilizator rethosPaicu Alexandru rethos Data 6 decembrie 2008 12:52:04
Problema Secv Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <stdio.h>
#include <algorithm>
#define NM 50001
#define INF 50001
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;
 for (i=1;i<=n;i++)
        {scanf("%d",&x[i]);
         c[i]=x[i];
        }
 sort(c+1,c+n+1);
 for (i=n;i>=2;i--)
        if (c[i]==c[i-1]) c[i]=INF;
 sort(c+1,c+n+1);
 m=n;
 while (c[m]==INF) m--;
 int sw;
 for (i=1;i<=n;i++)
        if (x[i]==c[1])
                {sw=0;
                 k=2;
                 for (j=i+1;j<=n;j++)
                        {if (x[j]==c[k]) k++;
                         if (k>m)
                                {sw=1;
                                 break;
                                }
                        }
                 if (sw&&(j-i+1<rez)) rez=j-i+1;
                }
 if (rez==INF) printf("-1");
        else printf("%d",rez);
 return 0;
}