Pagini recente » Cod sursa (job #2320747) | Borderou de evaluare (job #1567605) | Cod sursa (job #1926832) | Cod sursa (job #397121) | Cod sursa (job #543816)
Cod sursa(job #543816)
# include <stdio.h>
using namespace std;
int deque [5000001], a[500001];
int main () {
int n, i, front = 1, back = 0;
freopen ("scmax.in", "r", stdin);
freopen ("scmax.out", "wt", stdout);
scanf ("%d", &n);
for (i = 1; i <= n; ++i)
scanf ("%d", &a[i]);
for (i = 1; i <= n; ++i) {
while (front <= back && a[i] <= a [ deque [ back ] ]) -- back;
deque [ ++ back ] = i;
}
printf ("%d\n", back);
for (i = front; i <= back; ++i)
printf ("%d ", a [ deque [ i ] ]);
printf ("\n");
return 0;
}