记录编号 47935 评测结果 AAAAA
题目名称 [NOIP 1999]拦截导弹 最终得分 100
用户昵称 Gravatarcstdio 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2012-11-03 20:45:46 内存使用 0.31 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int n=0,ans=-1;
void maxlp(int s[],int f[]){//最长不上升存于f
	int i,j;
	f[0]=1;
	for(i=1;i<n;i++){
		f[i]=1;
		for(j=0;j<i;j++) if(s[j]>=s[i]&&f[j]+1>f[i]) f[i]=f[j]+1;
		if(f[i]>ans) ans=f[i];
	}
}
void maxlr(int s[],int f[]){
	int i,j;
	f[0]=1;
	for(i=1;i<n;i++){
		f[i]=1;
		for(j=0;j<i;j++) if(s[j]<s[i]&&f[j]+1>f[i]) f[i]=f[j]+1;
		if(f[i]>ans) ans=f[i];
	}
}
int main(){
	freopen("missile.in","r",stdin);
	freopen("missile.out","w",stdout);
	int mis[1001]={0},f[1001]={0};
	while(scanf("%d",&mis[n])!=EOF) n++;
	ans=-1;
	maxlp(mis,f);
	printf("%d\n",ans);
	ans=-1;
	maxlr(mis,f);
	printf("%d\n",ans);
	return 0;
}