Pagini recente » Cod sursa (job #653123) | Cod sursa (job #908582) | Cod sursa (job #2341106) | Cod sursa (job #1906853) | Cod sursa (job #1703562)
#include <cstdio>
using namespace std;
int v[100001],t[100001],l[100001];
FILE *fin=fopen ("scmax.in","r");
FILE *fout=fopen ("scmax.out","w");
void sol (int pmax){
if (pmax!=0){
sol (t[pmax]);
fprintf (fout,"%d ",v[pmax]);
}
}
int main()
{
int n,i,maxim,pmax,j,maxi,poz;
fscanf (fin,"%d",&n);
for (i=1;i<=n;i++)
fscanf (fin,"%d",&v[i]);
maxim=0;
pmax=0;
for (i=1;i<=n;i++){
maxi=0;
for (j=1;j<i;j++){
if (v[i]>v[j] && l[j]>maxi){
maxi=l[j];
poz=j;
}
}
if (maxi!=0){
l[i]=1+maxi;
t[i]=poz;
}
else l[i]=1+maxi;
if (l[i]>maxim){
maxim=l[i];
pmax=i;
}
}
fprintf (fout,"%d\n",maxim);
sol (pmax);
return 0;
}