Pagini recente » Cod sursa (job #2770755) | Cod sursa (job #1727226) | Cod sursa (job #2958672) | Cod sursa (job #2398362) | Cod sursa (job #2587138)
#include <bits/stdc++.h>
using namespace std;
ifstream f("secv.in");
ofstream g("secv.out");
int n,v[5005],ind[5005],ct[5005],nr=0;
int minim=0,lung=5005;
int main()
{
f>>n;
for(int i=1;i<=n;i++)
f>>v[i];
ind[1]=1; ct[1]=1;
minim=1; lung=1;
for(int i=2;i<=n;i++)
{
ct[i]=1; ind[i]=i;
for(int j=1;j<i;j++)
{
if(v[i]>v[j]) {
if(ct[j]+1>ct[i])
{
ct[i]=ct[j]+1;
ind[i]=ind[j];
}
else if(ct[j]+1==ct[i]&&ind[j]>ind[i])
ind[i]=ind[j];
}
}
if(ct[i]>minim) {minim=ct[i]; lung=i-ind[i]+1;}
else if(ct[i]==minim) {
if(i-ind[i]+1<lung)
lung=i-ind[i]+1;
}
}
sort(v+1,v+n+1);
for(int i=1;i<=n;i++)
if(v[i]!=v[i-1]) nr++;
if(minim==nr) g<<lung;
else g<<"-1";
}