比赛 20111021 评测结果 WWWWTT
题目名称 黑盒子 最终得分 0
用户昵称 苏轼 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-10-21 21:46:29
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
int m,n,a[32000],b[32000],q[32000],p=1,u=1;
int w[32000];
void check(int x);
int main()
{
	freopen ("blackbox.in","r",stdin);
	freopen ("blackbox.out","w",stdout);
	scanf ("%d%d\n",&m,&n);
	for (int i=1;i<=m;i++)
	{
		scanf("%d",&a[i]);
	}
	for (int i=1;i<=n;i++)
	{
		scanf("%d",&b[i]);
	}
	int i;
	w[0]=1;
	for (i=1;i<=m;i++)
	{
		check(i);
		q[u]=a[i];
		int c;
		c=w[0];
		int d=0;
		int e=1;
		while (e)
		{
			if (u!=1)
			{
				if (c==0)
				{
					w[d]=u;
					break;
				}
				if (q[c]>=q[u])
				{
					w[d]=u;
					w[u]=c;
					break;
				}
				d=c;
				c=w[c];
			}
			else
			{
				break;
			}
		}
		u++;
	}
	return 0;
}
void check(int x)
{
	for (int i=1;i<=n;i++)
	{
		if (b[i]>x)
		{
			return ;
		}
		if (x-1==b[i])
		{
			int t;
			t=w[0];
			int z=1;
			int y=1;
			while  (y)
			{
				if (z==i)
				{
					cout<<q[t]<<endl;
					break;	
				}
				else
				{
					t=w[t];
					z++;
				}
			}
		}
	}
}