代码如下,拜托各位大佬帮忙
#include <bits/stdc++.h>
using namespace std;
const int maxn = 5e4 + 5;
int a[maxn], n, len, q[maxn];
int main() {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
while (cin >> a[++ n]); n --;
q[0] = 2e9; // set q[0] to infinity
for (int i = 1; i <= n; i ++) {
// bisearch
int l = 0, r = len;
while (l < r) {
int mid = l + r + 1 >> 1;
if (q[mid] >= a[i]) l = mid;
else r = mid - 1;
}
len = max(len, r + 1);
q[r + 1] = a[i];
}
cout << len << endl; q[0] = -2e9; len = 0;
for (int i = 1; i <= n; i ++) {
// bisearch
int l = 0, r = len;
while (l < r) {
int mid = l + r + 1 >> 1;
if (q[mid] < a[i]) l = mid;
else r = mid - 1;
}
len = max(len, r + 1);
q[r + 1] = a[i];
}
cout << len;
return 0;
}