求助
查看原帖
求助
1229252
DDD5楼主2024/7/10 15:36
#include<iostream>
using namespace std;
const int N=1005;
int main(){
    int t,r=0,cnt=0,maxx=0,k[N],a[N],b[N];
    while(cin>>t){
        a[++cnt]=t;
        b[cnt]=1;
        for(int i=1;i<cnt;i++)
            if(a[i]>=a[cnt])b[cnt]=max(b[i]+1,b[cnt]);
        maxx=max(maxx,b[cnt]);
        int mi=30*N,s;
        for(int i=0;i<r;i++){
            if(t<=k[i]){
                if(mi>k[i]-t){
                    mi=k[i]-t;
                    s=i;
                }
            }
        }
        if(mi<30*N)k[s]=t;
        else k[r++]=t;
    }
    cout<<maxx<<"\n"<<r;
    return 0;
}
2024/7/10 15:36
加载中...