40pts求助
  • 板块P1160 队列安排
  • 楼主t202482
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/18 14:50
  • 上次更新2023/11/18 16:18:17
查看原帖
40pts求助
1124480
t202482楼主2023/11/18 14:50

标记了还是T了后三个点……

#include <iostream>
#include <cstdlib>
using namespace std;
typedef struct node {
	int dat; struct node *nxt;
}lNode, *linkList;
int main() {
	ios::sync_with_stdio(0);
	int n, k, opt, m, x, a[100005]={}; linkList p, q, r; cin >> n,
	p=(linkList)malloc(sizeof(lNode)), p->dat=0, p->nxt=nullptr,
	q=(linkList)malloc(sizeof(lNode)), q->dat=1, q->nxt=p->nxt, p->nxt=q;
	for(int i=2; i<=n; ++i) {
		cin >> k >> opt, q=p;
		while(q->nxt->dat^k) q=q->nxt;
		if(opt) q=q->nxt;
		r=(linkList)malloc(sizeof(lNode)), r->nxt=q->nxt, q->nxt=r, r->dat=i;
	}
	cin >> m;
	for(int i=0; i<m; ++i) {
		cin >> x;
		if(!a[x]) {
			a[x]=1,q=p; while(q->nxt && q->nxt->dat^x) q=q->nxt;
			if(q->nxt) r=q->nxt, q->nxt=r->nxt, free(r);
		}
	}
	for(q=p->nxt; q; q=q->nxt) cout << q->dat << ' ';
	return 0;
}
2023/11/18 14:50
加载中...