图片说明

#include<stdio.h>
long long int p[1000000], q[1000000];
int main() {
    int flag = 0;
    long long int n;
    long long int i, j, k = 1;
    long long int a, b;
    scanf("%lld", &n);
    for (i = 1; i <= n; i++) {
        scanf("%lld", &p[i]);
    }
    for (i = 1; i < n; i++) {
        for (j = i+1; j <= n; j++) {
            if (p[i] < p[j]) {
                break;
            }
        }
        if (j > n) {
            printf("%lld ", p[i]);
            p[i] = -1;
            for (a = i - 1; a >= 1; a--) {
                for (b = i + 1; b <= n; b++) {
                    if (p[a] < p[b]&&p[a]!= -1) {
                        flag = 1;
                        break;
                    }
                }
                if (flag) break;
                if (b > n&&p[a]!= -1) {
                    printf("%lld ", p[a]);
                    p[a] = -1;
                }
            }
            flag = 0;
        }
    }
    for (i = n; i >= 1; i--) {
        if (p[i] > -1&&p[i]!= -1)
            printf("%lld ", p[i]);
    }
    return 0;
}