Pagini recente » Cod sursa (job #1708016) | Cod sursa (job #753129) | Cod sursa (job #1702525) | Cod sursa (job #271134) | Cod sursa (job #280024)
Cod sursa(job #280024)
#include<stdio.h>
#define N 100008
int n;
int v[N];
int lung[N];
int maximum=0;
int poz[N];
int p;
void citire()
{
scanf("%d",&n);
for(int i=1;i<=n;++i)
scanf("%d",&v[i]);
}
void rez()
{
int i,j;
int maxl=0;
int max;
lung[1]=1;
for(i=2;i<=n;++i)
{
max=v[i];
maxl=lung[i];
for(j=1;j<i;++j)
{
if(v[i]>v[j])
{
if(lung[j]>maxl)
maxl=lung[j];
max=v[j];
}
}
lung[i]=maxl+1;
if(lung[i]>maximum)
{
maximum=lung[i];
p=i;
}
}
}
void afisare()
{
printf("%d ",maximum);
printf("%d",p);
printf("\n");
for(int i=maximum;i>=1;--i)
printf("%d ",poz[i]);
printf("\n");
}
void vector()
{
int i,curr,nr=0;
curr=maximum;
for(i=p;i>=1;--i)
{
if(curr==lung[i])
{
poz[++nr]=v[i];
curr--;
}
}
}
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
citire();
rez();
vector();
afisare();
return 0;
}