Pagini recente » Cod sursa (job #1056270) | Cod sursa (job #1273621) | Cod sursa (job #351216) | Cod sursa (job #1744336) | Cod sursa (job #464674)
Cod sursa(job #464674)
# include <fstream>
# include <iostream>
# include <vector>
# include <algorithm>
# define P 2000000
# define pb push_back
using namespace std;
int v[5005], n, nre, l[5005], p[5005], sol=P, pmin;
vector<int>V[P];
void read ()
{
v[pmin]=P;
int x;
ifstream fin ("secv.in");
fin>>n;
for(int i=1;i<=n;++i)
{
l[i]=1;
p[i]=i;
fin>>v[i];
if (v[i]<v[pmin])pmin=i;
x=v[i]%P;
if (!binary_search(V[x].begin(), V[x].end(), v[i]))
{
++nre;
V[x].pb(v[i]);
}
}
}
void solve ()
{
p[pmin]=pmin;
for(int i=pmin+1;i<=n;++i)
for(int j=i-1;j>=pmin;--j)
if (v[j]<v[i] && l[j]+1>l[i])
{
l[i]=l[j]+1, p[i]=p[j];
if (l[i]==nre && i-p[i]+1<sol)sol=i-p[i]+1;
}
}
int main ()
{
read ();
solve ();
ofstream fout ("secv.out");
if (sol==P)
fout<<"-1";
else
fout<<sol;
return 0;
}