Pagini recente » Cod sursa (job #1072042) | Cod sursa (job #1003730) | Cod sursa (job #2460130) | Cod sursa (job #757666) | Cod sursa (job #1083371)
#include <iostream>
#include<fstream>
using namespace std;
int v[50001],a[50001],n,i,s,j,aux, c[50001];
int main()
{
ifstream f("secv.in");
ofstream g("secv.out");
f>>n;
for(i=0;i<n;i++)
{f>>v[i];a[i]=v[i];}
do{s=1;
for(i=0;i<n-1;i++)
if(a[i]>a[i+1])
{
aux=a[i];a[i]=a[i+1];a[i+1]=aux;
s=0;
}
}while(s==0);
i=0;
j=1;
while(j<n)
{
if(a[i]==a[j])
j++;
else
{a[i+1]=a[j];
i++;j++;}
}
int m=i+1, M=0, L;
L=n;
//for(i=0;i<m;i++)
//cout<<a[i]<<" ";
c[0]=1;a[0]=0;
for(i=1;i<n;i++)
{c[i]=1;a[i]=i;
for(j=0;j<i;j++)
if(v[i]>v[j])
{if(c[j]+1>c[i])
{c[i]=c[j]+1;
a[i]=a[j];
if(c[i]==m)
if(L>i-a[i]+1)
L=i-a[i]+1;
if(M<c[i])M=c[i];}}}
if(M==m)
g<<L;
else
g<<"-1";
f.close();
g.close();
return 0;
}