Cod sursa(job #433312)

Utilizator dornescuvladVlad Eugen Dornescu dornescuvlad Data 3 aprilie 2010 16:00:46
Problema Subsir 2 Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<cstdio>
#define MAX_N 100005

using namespace std;


int N, v[MAX_N], D[MAX_N], k, i, j, poz, maxim, mx;

int main()
{
	freopen("subsir2.in","r",stdin);
	freopen("subsir2.out","w",stdout);
	scanf("%d",&N);
	for(i=1;i<=N;i++)
		scanf("%d",&v[i]);
	
	/*printf("\n");
	printf("%d ",v[poz]);*/
	int oki = 1;
	maxim = 25000;
	for(poz = 1;poz <= N; poz ++)
	{
		oki = 1;
		for(k = poz+1; k <=N ; k++)
			if (v[k] >= v[poz])
				oki = 0;
		if(oki == 1)
			if(poz < maxim)
				maxim = poz;
	}
	
	poz = maxim;
	maxim = -1000;
	
	D[poz] = 1;
	
	for(k=poz-1;k>=1;k--)
	{
		int mx=0;
		for(j=k+1;j<=poz;j++)
			if(v[j]>v[k] && D[j]>mx)
				mx = D[j];
		D[k] = mx + 1;
		if(D[k] > maxim)
		{
			maxim = D[k];
			poz = k;
		}
	}
	printf("%d",maxim);
	
	return 0;
}