比赛 防止浮躁的小练习v0.7 评测结果 AAAAAAAAAA
题目名称 拦截导弹 最终得分 100
用户昵称 SOBER GOOD BOY 运行时间 0.013 s
代码语言 C++ 内存使用 0.28 MiB
提交时间 2016-10-27 16:58:10
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int a[110],b[110],n;
int main()
{
	freopen("missile.in","r",stdin);
	freopen("missile.out","w",stdout);
	int z;
	scanf("%d",&z);
	a[0]=b[0]=1;
	a[1]=b[1]=z;int x;
	while(scanf("%d",&x)!=EOF)
	{
	
		if(x<=a[a[0]])
		{
			a[0]++;
			a[a[0]]=x;
		}
		else{
			int l=1,r=a[0];
			while(l<=r)
			{
				int mid=(l+r)>>1;
				if(x<=a[mid]) l=mid+1;
				else r=mid-1;
			}
			a[l]=x;
		}
		if(x<=b[b[0]])
		{
			int l=1,r=b[0];
			while(l<=r)
			{
				int mid=(l+r)>>1;
				if(x>b[mid]) l=mid+1;
				else r=mid-1;}
			//printf("l==%d r==%d a[l]==%d\n",l,r,a[l]);
			b[l]=x;
		}
		else {
			b[0]++;
			b[b[0]]=x;
		}
	}
	printf("%d\n%d",a[0],b[0]);
}