比赛 防止浮躁的小练习v0.7 评测结果 AAAAAWEEEE
题目名称 拦截导弹 最终得分 50
用户昵称 jjky 运行时间 0.520 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2016-10-27 21:31:47
显示代码纯文本
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
#include<iostream>
#include<queue>
#include<string.h>
#include<sstream>
using namespace std;
int date[25],n,a,p1[25],p2[25],max1,max2;
string s;
stringstream in;
int main()
{
	freopen("missile.in","r",stdin);
	freopen("missile.out","w",stdout);
	int i,j;
	getline(cin,s);
	in<<s;
	while(in>>date[++n]);
	n--;
	if(n==1)
	{
		cout<<1<<endl;
		cout<<0<<endl;
		return 0;
	}
	for(i=1;i<=n;i++)
	{
		p1[i]=1;
		p2[i]=1;
	}
	for(i=n-1;i>0;i--)
	{
		for(j=n;j>=i+1;j--)
		{
			if(date[i]>=date[j]&&p1[i]<p1[j]+1)
				p1[i]=p1[j]+1;
		}
		max1=max1>p1[i]?max1:p1[i];
	}
	for(i=2;i<=n;i++)
	{
		for(j=1;j<=i-1;j++)
		{
			if(date[i]>date[j]&&p2[i]<p2[j]+1)
				p2[i]=p2[j]+1;
		}
		max2=p2[i]>max2?p2[i]:max2;
	}
	cout<<max1<<endl;
	cout<<max2<<endl;
	return 0;
}