Pagini recente » Cod sursa (job #276722) | Cod sursa (job #1606857) | Cod sursa (job #1090948) | Cod sursa (job #1877235) | Cod sursa (job #287054)
Cod sursa(job #287054)
#include<fstream.h>
ifstream intrare("secv.in");
ofstream iesire("secv.out");
long int v[5001];
int a[5001][3],n;
void citeste()
{
intrare>>n;
for(int i=1;i<=n;i++)
intrare>>v[i];
}
int main()
{
citeste();
int i,j,max;
for(i=n;i>0;i--)
{
max=0;
for(j=i+1;j<=n;j++)
{
if(v[i]<v[j])
{
if(max<a[j][0])
{
max=a[j][0];
a[i][1]=j;
a[i][2]=a[j][2];
}
}
}
a[i][0]=max+1;
if(a[i][0]==1)a[i][2]=i;
}
max=0;
for(i=1;i<=n;i++)
{
if(max<a[i][0]){max=a[i][0];j=i;}
else if(max==a[i][0])
{
if(a[i][2]-i<a[j][2]-j) j=i;
}
}
int start=j,stop=j;
while(j!=0)
{
stop=j;
j=a[j][1];
}
if(stop-start!=0)
iesire<<stop-start+1;//<<max<<" "<<start<<" "<<stop<<"\n";
else iesire<<"-1";
/* for(i=1;i<=n;i++)
{
iesire<<a[i][0]<<" ";
}*/
return 0;
}