蒟蒻的代码
#include <bits/stdc++.h>
using namespace std;
int n;
int A[100005];
int d1[100005], d2[100005];
int len1, len2;
int main()
{
while(cin >> A[++n]);
n--;
for(int i=1; i<=n; i++) cin >> A[i];
len1 = len2 = 0;
d1[++len1] = d2[++len2] = A[1];
for(int i=2; i<=n; i++){
if(A[i] <= d1[len1]) d1[++len1] = A[i];
else d1[upper_bound(d1+1, d1+len1+1, A[i], greater<int>())-d1] = A[i];
}
d2[++len2] = A[1];
for(int i=2; i<=n; i++){
if(A[i] > d2[len2]) d2[++len2] = A[i];
else d2[lower_bound(d2+1, d2+len2+1, A[i]) - d2] = A[i];
}
printf("%d\n%d", len1, len2);
return 0;
}
第一个点WA了。
希望大佬帮忙看看。
Orz