CF1066C Books Queries

思路:
模拟,记录并维护每个元素的位置和整个序列最左边的空位位置及最右边的空位位置即可。

实现:

 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 int a[200005];
 5 int main()
 6 {
 7     int q;
 8     while (cin >> q)
 9     {
10         char t;
11         memset(a, 0, sizeof a);
12         int x, l = 100000, r = 100000;
13         for (int i = 0; i < q; i++)
14         {
15             cin >> t >> x;
16             if (t == 'L')
17             {
18                 a[x] = l--;
19                 if (i == 0) r++;
20             }
21             else if (t == 'R')
22             {
23                 a[x] = r++;
24                 if (i == 0) l--;
25             }
26             else
27             {
28                 cout << min(a[x] - l, r - a[x]) - 1 << endl;
29             }
30         }
31     }
32     return 0;
33 }

猜你喜欢

转载自www.cnblogs.com/wangyiming/p/9782977.html