WA 50Pts QAQ
查看原帖
WA 50Pts QAQ
1023961
Ryzen_9_9950X3D楼主2024/3/31 21:24
#include <iostream>
using namespace std;
struct node
{
	pair<int,int> val;
	node *prev,*next;
};
class chain
{	
	public:
		node *head,*rear;
		void build()
		{
			node *q;
			q = new node;
			head = rear = q;
			q->prev = q->next = NULL;
            q->val = {-114514,-1919810};
		}
		void insert(pair<int,int> x)
		{
            if(head == rear && head->val.first == -114514 && head->val.second == -1919810)
            {
                head->val = x;
                return;
            }
			for(node* i = head; i->next != NULL; i = i->next)
			{
				if(i->val.second == x.second)
				{
                
					node* z;
					z = new node;
					z->val = x;
					z->next = i->next;
					z->prev = i;
					z->next->prev = z;
					i->next = z;
					return;
				}
			}
			node* z;
			z = new node;
            z->val = x;
			rear->next = z;
			z->prev = rear;
			z->next = NULL;
			rear = z;
			return;
		}
		void pop()
		{
			if(head == rear)
			{
				head->val = {-114514,-1919810};
				return;
			}
			head = head->next;
			head->prev->next = NULL;
			delete (head->prev);
			head->prev = NULL;
		}
};
int main()
{
	int a,b;
	cin >> a >> b;
	pair<int,int> c[a];
	int d;
	for(int i = 0; i < a; i++)
	{
		cin >> d;
		c[i] = {i,d};
	}
	chain v;
	v.build();
	cin >> d;
	string e;
	int f;
	for(int i = 1; i <= d; i++)
	{
		cin >> e;
		if(e == "pop")
		{
			cout << (v.head->val.first) << endl;
			v.pop();
		}
		else
		{
			cin >> f;
			v.insert(c[f]);
		}
	}
	return 0;
}
console.log("反正我也找不出错 QAQ");
2024/3/31 21:24
加载中...