Pagini recente » Cod sursa (job #651790) | Cod sursa (job #55157) | Cod sursa (job #177122) | Cod sursa (job #2391063) | Cod sursa (job #1342455)
#include <fstream>
#include <algorithm>
#define nmax 5015
#define inf 1<<20
using namespace std;
ifstream f("secv.in");
ofstream g("secv.out");
int v[nmax],v1[nmax],n;
int a[nmax],m,k;
int sol=inf;
int main()
{
int i,j;
f>>n;
for (i=1;i<=n;i++){
f>>v[i];
v1[i]=v[i];
}
v1[0]=-1;
sort(v1+1,v1+n+1);
for (i=1;i<=n;i++)
if (v1[i]!=v1[i-1])
a[++m]=v1[i];
if (m==1) sol=1;
int st=1,dr=n;
while (st<=dr) {
int mid=(st+dr)>>1;
bool ok=false;
for (i=1;i+mid-1<=n;i++){
if (v[i]==a[1]) {
k=1;
for (j=i+1;j<=i+mid-1;j++)
if (v[j]==a[k+1]) {
k++;
if (k==m){
ok=true;
break;
}
}
}
}
if (ok==true) {
sol=mid;
dr=mid-1;
}
else
st=mid+1;
}
if (sol!=inf)
g<<sol;
else
g<<-1;
return 0;
}