Pagini recente » Cod sursa (job #2890470) | Cod sursa (job #143580) | Cod sursa (job #808414) | Cod sursa (job #1128360) | Cod sursa (job #2344963)
#include <bits/stdc++.h>
using namespace std;
int N, i, A[100005], K, F = 1, cnt = 1, Ans[100005], Poz, Max, j;
pair <int, int> B[50005];
int main()
{
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
scanf("%d", &N);
for(i = 1; i <= N; i++) scanf("%d", &A[i]);
for(i = 2; i <= N; i++) {
if(A[i] >= A[i - 1]) ++cnt;
else {
if(cnt > 1) B[++K].first = F, B[K].second = i - 1, cnt = 1;
F = i;
}
}
if(cnt > 1) B[++K].first = F, B[K].second = i - 1, cnt = 1;
for(i = 1; i <= K; i++) {
cnt = 1;
for(j = B[i].first; j < B[i].second; j++) if(A[j] < A[j + 1]) ++cnt;
if(A[j] == A[j - 1] && A[j] != A[B[i].first]) ++cnt;
if(cnt > Max) Max = cnt, Poz = i;
}
printf("%d\n", Max);
for(i = B[Poz].first; i < B[Poz].second; i++) if(A[i] < A[i + 1]) printf("%d ", A[i]);
printf("%d", A[i]);
return 0;
}