AcWing 3548. 双端队列
原题链接
中等
作者:
szywdwd
,
2021-05-22 20:21:16
,
所有人可见
,
阅读 259
#include <iostream>
#include <unordered_map>
using namespace std;
const int N = 1000010;
int dq[N], l = 500005, r = 500006;
unordered_map<int, int> m;
int main()
{
int q;
cin >> q;
while(q--) {
char op[2];
cin >> op;
if(op[0] == 'L') {
int x;
cin >> x;
dq[l--] = x;
m[x] = l + 1;
}
else if(op[0] == 'R') {
int x;
cin >> x;
dq[r++] = x;
m[x] = r - 1;
}
else {
int x;
cin >> x;
cout << (r - 1 - m[x] < m[x] - (l + 1) ? r - 1 - m[x] : m[x] - (l + 1)) << endl;
}
}
return 0;
}