记录编号 |
243643 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 1999]拦截导弹 |
最终得分 |
100 |
用户昵称 |
NewBee |
是否通过 |
通过 |
代码语言 |
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;
}