Pagini recente » Cod sursa (job #1000470) | Cod sursa (job #2779499) | Cod sursa (job #1106267) | Cod sursa (job #1164127) | Cod sursa (job #548198)
Cod sursa(job #548198)
#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;
}
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 (v[i]==m && rasp>i-poz[m]+1)
rasp=i-poz[m]+1;
}
if (rasp==1<<30)
rasp=-1;
out<<rasp<<"\n";
return 0;
}