Cod sursa(job #287054)

Utilizator razvan_3dragomir razvan razvan_3 Data 24 martie 2009 15:22:12
Problema Secv Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#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;
}