[CF1066C]Books Queries
Posted memory-of-winter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CF1066C]Books Queries相关的知识,希望对你有一定的参考价值。
题目大意:维护一个数列,要求在左边插入一个数,在右边插入一个数,查询一个数的排名
题解:可以双指针,开个数组存每个数的位置
卡点:无
C++ Code:
#include <cstdio> #define maxn 200010 int n, l, r = 1; int ret[maxn]; inline int min(int a, int b) {return a < b ? a : b;} int main() { scanf("%d", &n); while (n --> 0) { char ch; int x; scanf("%1s%d", &ch, &x); switch (ch) { case ‘L‘: ret[x] = l--; break; case ‘R‘: ret[x] = r++; break; case ‘?‘: printf("%d ", min(ret[x] - l, r - ret[x]) - 1); } } return 0; }
以上是关于[CF1066C]Books Queries的主要内容,如果未能解决你的问题,请参考以下文章