Pagini recente » Cod sursa (job #469663) | Cod sursa (job #1647373) | Cod sursa (job #1373215) | g | Cod sursa (job #548215)
Cod sursa(job #548215)
#include <fstream>
using namespace std;
struct laba{int x,y;} a[1<<13];
int v[1<<13],poz[1<<13],n,m,rasp=1<<30;
ifstream in("secv.in");
ofstream out("secv.out");
inline bool cmp(laba a,laba b)
{
return a.x<b.x;
}
int main()
{
int i;
in>>n;
for (i=1;i<=n;i++)
{
in>>a[i].x;
a[i].y=i;
}
a[0].x=-1;
sort(a+1,a+n+1,cmp);
for (i=1;i<=n;i++)
{
m+=(a[i].x!=a[i-1].x);
v[a[i].y]=m;
}
for (i=1;i<=n;i++)
{
if (v[i]==1)
poz[1]=i;
else
poz[v[i]]=poz[v[i]-1];
if (poz[m] && v[i]==m && rasp>i-poz[m]+1)
rasp=i-poz[m]+1;
}
if (rasp==(1<<30))
rasp=-1;
out<<rasp<<"\n";
return 0;
}