码迷,mamicode.com
首页 > 其他好文 > 详细

[CF1066C]Books Queries

时间:2018-11-05 16:19:36      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:fine   要求   inline   一个   include   int   std   print   span   

题目大意:维护一个数列,要求在左边插入一个数,在右边插入一个数,查询一个数的排名

题解:可以双指针,开个数组存每个数的位置

卡点:

 

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\n", min(ret[x] - l, r - ret[x]) - 1);
		}
	}
	return 0;
}

  

[CF1066C]Books Queries

标签:fine   要求   inline   一个   include   int   std   print   span   

原文地址:https://www.cnblogs.com/Memory-of-winter/p/9909259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!