比赛 |
20111021 |
评测结果 |
AAAAAA |
题目名称 |
黑盒子 |
最终得分 |
100 |
用户昵称 |
Truth.Cirno |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2011-10-21 20:08:10 |
显示代码纯文本
#include <cstdio>
using namespace std;
int add[30001],get[30001],a[30002]={20000000},ava=0;
void insert(int x)
{
int i,l,r,mid;
l=0;
r=ava;
mid=(l+r)/2;
while (l<r)
{
if (x>a[mid])
l=mid+1;
else if (x<a[mid])
r=mid;
else
break;
mid=(l+r)/2;
}
for (i=ava+1;i>=mid+1;i--)
a[i]=a[i-1];
a[mid]=x;
ava++;
}
int main(void)
{
freopen("blackbox.in","r",stdin);
freopen("blackbox.out","w",stdout);
int i,geti,addnum,getnum;
scanf("%d %d",&addnum,&getnum);
for (i=0;i<addnum;i++)
scanf("%d",&add[i]);
for (i=0;i<getnum;i++)
{
scanf("%d",&get[i]);
get[i]--;
}
geti=0;
for (i=0;i<addnum;i++)
{
insert(add[i]);
while (get[geti]==i)
{
printf("%d\n",a[geti]);
geti++;
}
}
fclose(stdin);
fclose(stdout);
return(0);
}