100分求助
查看原帖
100分求助
450498
miaozheyuan楼主2023/8/4 17:34

100分求助

#include <bits/stdc++.h>
using namespace std;

int f1[1000005], f2[100005], a[100005];

int main() {
    int cur = 1;
    while(cin >> a[cur]) cur++;
    cur--;
    int n = cur;
    for (int i = 1; i <= n; ++i) f1[i] = 1, f2[i] = 1;
    for (int i = 1; i <= n; ++i) {
        for (int j = i - 1; j >= 1; --j) {
            if(a[i] <= a[j]) f1[i] = max(f1[i], f1[j] + 1);
        }
    }
    for (int i = 1; i <= n; ++i) {
        for (int j = i - 1; j >= 1; --j) {
            if(a[i] > a[j]) f2[i] = max(f2[i], f2[j] + 1);
        }
    }
    int ans1 = 0, ans2 = 0;
    for (int i = 1; i <= n; ++i) {
        ans1 = max(ans1, f1[i]);
        ans2 = max(ans2, f2[i]);
    }
    cout << ans1 << "\n" << ans2;
    return 0;
}
2023/8/4 17:34
加载中...