比赛 防止浮躁的小练习v0.7 评测结果 AAAAAAAAAA
题目名称 拦截导弹 最终得分 100
用户昵称 Lethur 运行时间 0.019 s
代码语言 C++ 内存使用 0.26 MiB
提交时间 2016-10-27 16:07:42
显示代码纯文本
#include<iostream>  
#include<cstdio>
#include<cstdlib>
#define MAXN 1001
using namespace std;  
int dp1[MAXN] = {0};  
int dp2[MAXN] = {0};  
int a[MAXN];  
int n=0;  
int main()  
{  
	freopen("missile.in","r",stdin);
	freopen("missile.out","w",stdout);
  while(scanf("%d", &a[++n]) != EOF);  
  n--;  
  dp1[1] = 1;  
  int max;  
  int ans = 1;  
  for(int i=2; i<=n; i++)  
  {  
    max = 0;  
    for(int j=1; j<i; j++)  
    {  
      if(max<dp1[j] && a[j]>a[i]) max=dp1[j];  
    }  
    dp1[i] = max+1;  
    if(dp1[i]>ans) ans = dp1[i];  
  }  
  cout << ans << endl;  
  
  ans = 1;  
  dp2[1] = 1;  
  for(int i=2; i<=n; i++)  
  {  
    max = 0;  
    for(int j=1; j<i; j++)  
    {  
      if(max<dp2[j] && a[j]<a[i]) max = dp2[j];  
    }  
    dp2[i] = max + 1;  
    if(dp2[i] > ans) ans = dp2[i];  
  }  
  cout << ans << endl;  
  return 0;  
}