记录编号 |
238397 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 1999]拦截导弹 |
最终得分 |
100 |
用户昵称 |
Sky_miner |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.000 s |
提交时间 |
2016-03-19 08:18:58 |
内存使用 |
0.00 MiB |
显示代码纯文本
#include<cstdio>
#include<string.h>
namespace cat{
int cnt,x,n,maxx,ans_1,a[10010],b[10010],h[10010];
int work(){
cnt=1;
while(scanf("%d",&a[cnt])!= -1){
maxx=0;
for(int j=1;j<=cnt-1;j++)
if(a[j] >= a[cnt] && b[j]>maxx)
maxx=b[j];
b[cnt]=maxx+1;
if(b[cnt]>ans_1) ans_1=b[cnt];
x=0;
//n为系统数
for(int k=1;k<=n;k++)
if( h[k] >= a[cnt])
if(x==0) x=k;//没有系统将要阻拦
else if(h[k]<h[x]) x=k;//选择其他更小的系统进行阻拦
if(x==0) n++,x=n;//无法阻拦,申请一套系统
h[x]=a[cnt];
cnt++;
}
printf("%d\n%d",ans_1,n);
return 0;
}
}
void *___=freopen("missile.in","r",stdin);
void *_=freopen("missile.out","w",stdout);
int jboe=cat::work();
int main(){;}