记录编号 243643 评测结果 AAAAAAAAAA
题目名称 [NOIP 1999]拦截导弹 最终得分 100
用户昵称 GravatarNewBee 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2016-03-30 10:52:18 内存使用 0.30 MiB
显示代码纯文本
//designed by New_Beeؼ
#include<cstdlib>
#include<cstdio>
#include<cstring>
#define Fe freopen("missile.in","r",stdin);freopen("missile.out","w",stdout);chul();fclose(stdin);fclose(stdout);

using namespace std;

const int maxn=1010;
int l[maxn],r[maxn];
int lmax=-1,rmax=-1;
int s=0,t=0;

void chul();
void adds1(int,int,int);
void adds2(int,int,int);

int main()
{
	Fe;
}

void chul()
{
	memset(l,-1,sizeof(l));
	memset(r,0x7f,sizeof(r));
	l[0]=0x7fffffff;
	r[0]=-1;
	

	int k;
	while(scanf("%d",&k)!=EOF)
	{
		adds1(0,s,k);
		adds2(0,t,k);
	}
	
	/*for(int i=1;i<=6;i++)
	{
		printf("%d ",l[i]);
	}
	printf("\n");
	for(int i=1;i<=2;i++)
	{
		printf("%d ",r[i]);
	}
	printf("\n");*/
	
	printf("%d\n%d",lmax,rmax);
}

void adds1(int si,int ti,int k)
{
	while(si<=ti)
	{
		int mid=(si+ti)>>1;
		if(l[mid]>k)si=mid+1;
		else ti=mid-1;
	}
	if(si>s)s++;
	if(si>lmax)lmax=si;
	
	l[si]=k;
}

void adds2(int si,int ti,int k)
{
	while(si<=ti)
	{
		int mid=(si+ti)>>1;
		if(r[mid]<k)si=mid+1;
		else ti=mid-1;
	}
	if(si>t)t++;
	if(si>rmax)rmax=si;
	
	r[si]=k;
}