目录
Boring data structure problem
题意:
给出四种操作,L,R,Q,G,L是在队列左边插入一个数,R是在队列右边插入一个数,Q是询问队列中的
中位数((m+1)/2),G是给出一个数x,删除数值为X的数:插入的数是从1到n进行插入,无重复
思路:
用数组模拟链表功能,用结构体分别把每个节点的左节点和右节点存储,然后再开
一个数组来记录插入数值的位置,结构体空间不能开双倍(会爆内存),所以要增
加偏移量。
代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 10000010;
const int inf=1e9;
typedef long long LL;
struct node
{
int data,left,right;
int sign;
} s[N];
int id[N];
int p=1e7+1;
char a[5];
int main()
{
//freopen("C:\\Users\\86132\\Desktop\\datain.txt", "r", stdin);
//freopen("C:\\Users\\86132\\Desktop\\dataout.txt", "w", stdout);
int t;
scanf("%d",&t);
int l=0;
int r=l+1;
s[l].right=