Pagini recente » Cod sursa (job #1970933) | Cod sursa (job #763621) | Cod sursa (job #631478) | Cod sursa (job #2559801) | Cod sursa (job #3187141)
#include <bits/stdc++.h>
#define f first
#define s second
using namespace std;
ifstream in("secv.in");
ofstream out("secv.out");
int main()
{
set<int> s;
int n;
in>>n;
int v[n+5];
pair<int,int> d[n+5];
for(int i=0;i<n;i++){
in>>v[i];
s.insert(v[i]);
d[i]={-1,-1};
}
auto it=s.begin();
int vv[n+5],nn=0;
for(auto i:s)vv[nn++]=i;
for(int i=0;i<nn;i++)
{
for(int j=0;j<n;j++)
{
if(vv[i]==v[j])
{
if(i==0)
{
d[j]={vv[i],j};
}
else if(d[j].f==vv[i-1])
{
d[j].f=vv[i];
}
}
if(j!=0&&(d[j-1].f>d[j].f||(d[j-1].f==d[j].f&&d[j-1].s>d[j].s)))
{
d[j]=d[j-1];
}
}
}
int minn=INT_MAX;
for(int i=0;i<n;i++)
{
if(d[i].f==vv[nn-1]){
minn=min(minn,i-d[i].s+1);
}
}
out<<(minn==INT_MAX?-1:minn);
}