30分代码求助!
查看原帖
30分代码求助!
605945
luo_xiaoran楼主2022/11/30 13:45
#include<bits/stdc++.h>
using namespace std;
int n,m,o=0,b[100010];
struct node
{
	int p,i;
}a[100010],c[100010];
bool cmp(node a,node b)
{
	return a.p<b.p;
}
bool dmp(node a,node b)
{
	return a.i<b.i;
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=0;i<n;i++)
	{
		scanf("%d",&a[i].p);
		a[i].i=i;
	}
	for(int i=0;i<m;i++)
	{
		scanf("%d",&b[i]);
	}
	sort(a,a+n,cmp);
	sort(b,b+n);
	for(int i=0,j=0;i<n&&j<m;i++,j++)
	{
		begin :
		if(i>=n||j>=m)
		{
			break;
		}
		if(a[i].p==b[j])
		{
			c[o].p=b[j];
			c[o++].i=a[i].i;
			continue;
		}
		else
		{
			if(a[i].p>b[j])
			{
				j++;
				goto begin;
			}
			else
			{
				i++;
				goto begin;
			}
		}
	}
	sort(c,c+o,dmp);
	for(int i=0;i<o;i++)
	{
		printf("%d ",c[i].p);
	}
	return 0;
}

醉卧沙场君莫笑

2022/11/30 13:45
加载中...