Cod sursa(job #658179)

Utilizator Marius_mFMI-M2 Marius Melemciuc Marius_m Data 8 ianuarie 2012 03:59:25
Problema Subsir crescator maximal Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<stdio.h>
#define Nmax 100002
using namespace std;

FILE *c,*d;
int n,v[Nmax];

void read()
{
	int i;
	fscanf(c,"%d",&n);
	for(i=1;i<=n;i++)
		fscanf(c,"%d",&v[i]);
}

void solve()
{
	int k,i,max,imax,l[Nmax];
	l[n]=1;
	for(k=n-1;k>=1;k--)
	{
		l[k]=1;
		i=k;
		do
			i++;
		while(v[i]<v[k]&&i<n);
		if(v[i]>=v[k])
			l[k]=l[i]+1;
	}
	max=l[1];
	for(i=2;i<=n;i++)
		if(l[i]>max)
		{
			max=l[i];
			imax=i;
		}
	fprintf(d,"%d\n",max);
	fprintf(d,"%d ",v[imax]);
	for(i=imax+1;i<=n;i++)
		if(v[i]>v[imax])
		{
			fprintf(d,"%d ",v[i]);
			imax=i;
		}
}

int main()
{
	c=fopen("scmax.in","r");
	d=fopen("scmax.out","w");
	read();
	solve();
	fclose(c);
	fclose(d);
	return 0;
}