Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
140715 | 杨泳文 | 导弹拦截 | C++ | 通过 | 100 | 48 MS | 244 KB | 650 | 2024-03-30 17:30:23 |
#include<stdio.h> using namespace std; int main() { int k=0,a[100001],temp; while (scanf("%d",&temp)!=EOF){ a[k++] = temp; } int i,j,dp[k],dp2[k],MAX=1,MAX2=1; for (i=0;i<k;i++) { dp[i] = 1; dp2[i] = 1; } for (i=1;i<k;i++) { for (j=0;j<i;j++) { if (a[i]<a[j] && dp[i]<(dp[j]+1)) { dp[i] = dp[j]+1; MAX = dp[i]>MAX?dp[i]:MAX; } if (a[i]>=a[j] && dp2[i]<(dp2[j]+1)) { dp2[i] = dp2[j]+1; MAX2 = dp2[i]>MAX2?dp2[i]:MAX2; } } } printf("%d\n%d",MAX,MAX2); return 0; }