subtask#1错了,帮我看看
我给个错误样例:
输入181 205 471 782 1033 1058 1111
实际输出7 3
答案输出 7 4
#include<bits/stdc++.h>
using namespace std;
int a[100005],dp[100005],dq[100005],maxx=1;
bool check(int y,int x){
if(a[y]>dp[x]) return true;
else return false;
}
bool chack(int y,int x){
if(a[y]<=dp[x]) return true;
else return false;
}
int main() {
int k=1;
while(cin>>a[k]){
k++;
}
k-=1;
dp[1]=a[1];
for(int i=1;i<=k;i++){
int l=1,r=i,flag=0;
while(l<r){
int mid=(l+r)/2;
if(check(i,mid)){
flag=1;
r=mid;
}else{
l=mid+1;
}
}
if(flag==1){
dp[r]=a[i];
maxx=max(r,maxx);
}
}
cout<<maxx<<endl;
maxx=1;
dp[1]=a[1];
for(int i=1;i<=k;i++){
dp[i]=50005;
int l=1,r=i,flag=0;
while(l<r){
int mid=(l+r)/2;
if(chack(i,mid)){
flag=1;
r=mid;
}else{
l=mid+1;
}
}
if(flag==1){
dp[r]=a[i];
maxx=max(r,maxx);
}
}
cout<<maxx;
return 0;
}