zju2011 Median

http://ac.jobdu.com/problem.php?pid=1004

#include <stdio.h>


int a[1100005],b[1100005];
int main()
{
	int n,m,i,j,num,mid,ans;
	
	while (scanf("%d",&n)!=EOF)
	{
		for (i=0;i<n;i++)
		{
			scanf("%d",&a[i]);
		}
		scanf("%d",&m);
		for (i=0;i<m;i++)
		{
			scanf("%d",&b[i]);
		}
		i=0,j=0;
	    num=1;
		if ((n+m)%2==0)
		{
			mid=(n+m)/2;      //第mid是中間數
		}
		else
			mid=(n+m+1)/2;
		while (num<=mid)         //從1開始循環到mid
		{
			if (i<n&&a[i]<b[j])
			{
				ans=a[i++];
			}
			else
				ans=b[j++];
			num++;
		}
		printf("%d\n",ans);
	}
	return 0;
	
}

2011年浙江大學計算機及軟件工程研究生機試真題


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章