Cod sursa(job #631918)

Utilizator StefanLacheStefan Lache StefanLache Data 9 noiembrie 2011 22:06:07
Problema Subsir crescator maximal Scor 15
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<iostream>
#include<stdio.h>
int n,v[100000],best[100000];
using namespace std;
int main()
{
	freopen("scmax.in","r",stdin);
	freopen("scmax.out","w",stdout);
	int i,j,max,maxi,prev,nr;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		scanf("%d",&v[i]);
	max=0;
	for(i=n;i>1;i--)
	{
		prev=v[i];
		nr=1;
		for(j=i-1;j>=1;j--)
			if(v[j]<prev)
			{prev=v[j];nr++;}
		best[i]=nr;
		if(best[i]>max)
		{maxi=i;max=best[i];}
	}
	printf("%d\n",max);
	prev=0;
	i=1;while(v[i]>=v[maxi])
		i++;
	while(i<maxi)
		{if(v[i]<v[maxi]&&v[i]>prev)
		          {printf("%d ",v[i]);prev=v[i];}
			i++;
		}
	printf("%d",v[maxi]);
	return 0;
}