| Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 80613 | sh25_zhuwy | 拦截导弹 | C++ | 通过 | 0 MS | 264 KB | 835 | 2026-01-04 15:24:07 |
#include <bits/stdc++.h> using namespace std; const int N=2e5+5; int a[N],x,n,dp[N],maxn; int g[N],cnt; int main(){ while(cin>>x) a[++n]=x; g[0]=2e9; for(int i=1;i<=n;i++){ if(a[i]<=g[cnt]) g[++cnt]=a[i]; else{ int l=1,r=cnt; while(l<r){ int mid=l+r>>1; if(g[mid]<a[i])r=mid; else l=mid+1; } g[l]=a[i]; } } cout<<cnt<<endl; cnt=0; g[0]=-2e9; for(int i=1;i<=n;i++){ if(a[i]>g[cnt]) g[++cnt]=a[i]; else{ int l=1,r=cnt; while(l<r){ int mid=l+r>>1; if(g[mid]>=a[i])r=mid; else l=mid+1; } g[l]=a[i]; } } cout<<cnt<<endl; }