记录编号 29620 评测结果 AAAAAA
题目名称 [POJ 1442] 黑盒子 最终得分 100
用户昵称 GravatarMakazeu 是否通过 通过
代码语言 C++ 运行时间 0.499 s
提交时间 2011-10-25 09:30:47 内存使用 0.60 MiB
显示代码纯文本
#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);
}