Pagini recente » Cod sursa (job #1518721) | Cod sursa (job #1840325) | Cod sursa (job #566414) | Cod sursa (job #973283) | Cod sursa (job #433249)
Cod sursa(job #433249)
#include<cstdio>
#define MAX_N 100005
using namespace std;
int N, v[MAX_N], D[MAX_N], k, i, j, poz, maxim, mx;
int main()
{
freopen("subsir2.in","r",stdin);
freopen("subsir2.out","w",stdout);
scanf("%d",&N);
for(i=1;i<=N;i++)
scanf("%d",&v[i]);
D[N] = 1;
for(k=N-1;k>=1;k--)
{
int mx=0;
for(j=k+1;j<=N;j++)
if(v[j]>v[k] && D[j]>mx)
mx = D[j];
D[k] = mx + 1;
if(D[k] > maxim)
{
maxim = D[k];
poz = k;
}
}
printf("%d",maxim);
printf("\n");
printf("%d ",v[poz]);
for(i=poz+1;i<=N;i++)
if(D[i] == maxim - 1)
{
printf("%d ",v[i]);
maxim--;
}
return 0;
}