Cod sursa(job #912326)

Utilizator raulstoinStoin Raul raulstoin Data 12 martie 2013 12:13:46
Problema Secv Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
#define NMAX 5005
using namespace std;
FILE *fin,*fout;
int a[NMAX],b[NMAX],n,dif,m;
void scmax()
{
	int i,j,m;
	for(i=0;i<n;i++)
	{
		m=0;
		for(j=i-1;j>=0;j--)
			if(a[j]<a[i])
				m=(m<b[j])?(b[j]):(m);
		b[i]=m+1;
	}
}
void dist()
{
	int i,p;
	for(i=0;i<n;i++)
		if(b[i]>m)
		{
			p=i;
			m=b[i];
		}
	/*if(m<2)
	{
		dif=-1;
		return;
	}*/
	dif=p+1;
	for(i=p-1,m--;m;i--)
		if(a[i]<a[p] && b[i]==b[p]-1)
		{
			p=i;
			m--;
		}
	dif-=p;
}
void read()
{
	fin=fopen("secv.in","r");
	fscanf(fin,"%d",&n);
	for(int i=0;i<n;i++)
		fscanf(fin,"%d",&a[i]);
	fclose(fin);
}
void print()
{
	fout=fopen("secv.out","w");
	fprintf(fout,"%d",dif);
	fclose(fout);
}
int main()
{
	read();
	scmax();
	dist();
	print();
	return 0;
}