40pts求调
查看原帖
40pts求调
1283894
Czy54188楼主2024/8/19 09:44
#include <bits/stdc++.h>

int n,m,k,p,x;
class IQ{
	public:
		int aq[100005];
		int len;
	
	int find(int kk){
		int num=1;
		while(aq[num]!=kk && num<=len) num++;
		if(num==len+1) return -1;
		else return num;
	}
	void ins(int num,int k,int p){
		int adr=find(k);
		for(int i=len;i>adr;i--) aq[i+1]=aq[i];
		if(!p){
			aq[adr+1]=aq[adr];
			aq[adr]=num;
		}
		else aq[adr+1]=num;
		len++;
		return ;
	}
	void del(int x){
		int adr=find(x);
		if(adr==-1) return ;
		else{
			for(int i=adr;i<=len;i++) aq[i]=aq[i+1];
			len--;
			return ;
		}
	}
	void print(){
		for(int i=1;i<=len;i++) printf("%d ",aq[i]);
	}
}iq;

int main(){
	iq.aq[1]=1;
	iq.len=1;
	scanf("%d",&n);
	for(int i=2;i<=n;i++){
		scanf("%d%d",&k,&p);
		iq.ins(i,k,p);
	}
	scanf("%d",&m);
	for(int i=1;i<=m;i++){
		scanf("%d",&x);
		iq.del(x);
	}
	iq.print();
	return 0;
}

后面三个点TLE

2024/8/19 09:44
加载中...