40分求助
查看原帖
40分求助
1054618
niubi618楼主2025/1/24 16:29

只有40分,后面RE

#include<bits/stdc++.h>
using namespace std;
vector<long long>a;
long long n,pd,m,k,x,ans=2;
long long find(long long l)
{
	long long ll=0;
	 for(int j=0;j<n;j++)
	 if(a[j]==l)
	 ll=j;
	return ll;
	
}
int main()
{
	scanf("%ld",&n);
	a.push_back(0);
	a.push_back(1);
	for(int i=1;i<n;i++)
	{
		scanf("%ld%ld",&k,&pd);
		//cout<<find(k)<<endl;
		if(pd)
			a.insert(find(k)+a.begin()+1,ans);
		else
			a.insert(find(k)+a.begin(),ans);
		ans++;
		
	}
	scanf("%ld",&m);
	for(int i=1;i<=m;i++)
	{
		scanf("%ld",&x);
		for(int j=0;j<=ans;j++)
		{
			if(a[j]==x)
			a[j]=-1;
		}
	}
	for(int j=0;j<ans;j++)
	if(a[j]==-1||a[j]==0)
	continue;
	else
	printf("%ld ",a[j]);
	return 0;
}
2025/1/24 16:29
加载中...