题目背景
译自 Izborne Pripreme 2015 (Croatian IOI/CEOI Team Selection) D1T1。2s,0.5G。
题目描述
给定 n 个二维笛卡尔坐标系中的向量 vi=(xi,yi)。
令点 P0=(1,1)。对于 1≤i≤n,有 Pi=Pi−1+vi。
有一个变量 pos,初始时为 1。有 m 个操作:
- B:令 pos←max(1,pos−1)。
- F:令 pos←min(n,pos+1)。
- C x y:令 vpos←(x,y)。
- Q:询问 1≤i≤n∑f(i),其中 f(i) 表示线段 Pi−1Pi 与坐标轴相交了多少次。
- 特别地,若 Pi−1Pi 经过原点,我们也认为与两个坐标轴都相交。
这里,保证任意时刻,对于 ∀1≤i≤n,都有 xi,yi 是偶数。
输入格式
第一行,一个正整数 n。
接下来 n 行,每行两个偶数 xi,yi。
第 (n+2) 行,一个正整数 m。
接下来 m 行,每行先是一个大写字母,再是零个或两个偶数,描述一个操作。格式见题目描述处。
输出格式
对于每个查询操作,输出一行一个非负整数表示答案。
6
2 2
2 -6
-2 -4
-6 4
10 -10
-8 12
16
Q
C -4 -4
F
F
Q
F
C 6 -2
B
B
B
Q
C 0 6
Q
F
C -8 4
Q
4
4
3
1
5
5
6 2
0 -6
-2 2
-6 -8
4 0
12
Q
C 4 4
Q
F
F
F
C -6 -2
Q
B
B
C -4 -6
Q
3
5
5
4
提示
对于 100% 的数据,保证:
- 1≤n≤105,1≤n≤3×105;
- ∣x∣,∣y∣,∣xi∣,∣yi∣≤500,且均为偶数。
子任务编号 |
n≤ |
m≤ |
得分 |
1 |
1000 |
1000 |
9 |
2 |
5×104 |
105 |
35 |
3 |
105 |
3×105 |
56 |