死循环求助
查看原帖
死循环求助
632063
shipeiqian楼主2023/1/9 20:57
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=100005;
int n=0,ans,a[N],temp[N];
int main(){
    while(cin >>a[++n]);
    n--;
    ans=0;
    temp[0]=500001;
    for(int i=1;i<=n;i++){
        if(a[i]<=temp[ans])temp[++ans]=a[i];
        else{
            int l=1,r=ans,mid;
            while(l<r){
                mid=(l+r)/2;
                if(temp[mid]<a[i])r=mid;
                else l+mid+1;
            }
            temp[l]=a[i];
        }
    }
    cout <<ans <<"\n";
    ans=0;
    temp[0]=-50001;
    for(int i=1;i<=n;i++){
        if(a[i]>temp[ans])temp[++ans]=a[i];
        else{
            int l=1,r=ans,mid;
            while(l<r){
                mid=(l+r)/2;
                if(temp[mid]>=a[i])r=mid;
                else l=mid+1;
            }
            temp[l]=a[i];
        }
    }
    cout <<ans <<'\n';
    return 0;
}
2023/1/9 20:57
加载中...