Pagini recente » Cod sursa (job #2748550) | Cod sursa (job #223966) | Rezultatele filtrării | Cod sursa (job #212254) | Cod sursa (job #588289)
Cod sursa(job #588289)
#include<fstream>
#include<set>
using namespace std;
ifstream f("secv.in");
ofstream g("secv.out");
int n,v[5001],c,p[5002],nr,min1,ok,lmin,l,max1,ca;
set<int> s;
set<int>::iterator it,o;
int main()
{ int i,k;
f>>n;
if(n==0)
{ g<<0<<'\n';
f.close(); g.close();
return 0;
}
min1=lmin=2000000001;
for(i=1;i<=n;i++)
{ f>>v[i];
s.insert(v[i]);
if(v[i]<min1) min1=v[i],nr=1,p[nr]=i;
else if(v[i]==min1) nr++, p[nr]=i;
if(v[i]>max1) max1=v[i];
}
o=s.end();
p[nr+1]=n+1;
for(k=nr;k>0;--k)
{i=p[k];
it=s.begin();
++it;
ok=0;
while(!ok&&i<=n)
{ if(v[i]==*it)
{ ++it;
if(it==o) ok=1, l=i-p[k]+1/*,c=1*/;
}
i++;
}
//ca=c;
if(l<lmin&&ok) lmin=l;
}
if(lmin<2000000001) g<<lmin<<'\n';
else g<<-1<<'\n';
f.close(); g.close();
return 0;
}