Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
140334 | 林泽豪 | 导弹拦截 | C++ | 编译错误 | 0 | 0 MS | 0 KB | 471 | 2024-03-30 14:30:20 |
include<bits/stdc++.h> using namespace std; const int N=110000; int w[N],f[N],p[N],ps=0,maxn=0,n; int main(){ while(cin>>w[++n]){ int s=1;bool k=0; f[n]=1; for(int i=1;i<=ps;i++){ if(p[i]>=w[n]&&(!k||(p[i]<p[s]&&k))){ k=1; s=i; } } if(k) p[s]=w[n]; else p[++ps]=w[n]; } for(int i=n-1;i>=1;i--){ for(int j=n;j>i;j--){ if(w[i]>=w[j])f[i]=max(f[i],f[j]+1); maxn=max(maxn,f[i]); } } cout<<maxn<<endl<<ps; }