Pagini recente » Cod sursa (job #442321) | Cod sursa (job #735221) | Cod sursa (job #1371896) | Cod sursa (job #3157814) | Cod sursa (job #464670)
Cod sursa(job #464670)
# 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;
vector<int>V[P];
void read ()
{
int x;
ifstream fin ("secv.in");
fin>>n;
for(int i=1;i<=n;++i)
{
l[i]=1;
p[i]=i;
fin>>v[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[1]=1;
for(int i=2;i<=n;++i)
for(int j=i-1;j;--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;
}