#L4329. 电车(CEOI2013)
电车(CEOI2013)
题目描述
电车的座位按网格排列,网格有 行(编号 到 )和 列(编号 和 )。
两个座位之间的距离(一个在第 行第 列,另一个在第 行第 列)是它们网格中心之间的欧几里得距离:
大多数乘客喜欢独处,他们会选择一个离其他乘客尽可能远的空座位。具体规则如下:
- 选择一个空座位,使得该座位与最近的已占用座位的距离最大。
- 如果有多个这样的座位,选择行号最小的。
- 如果仍有多个,选择列号最小的。
- 如果电车为空,乘客会选择座位 。
乘客选择座位后会一直坐在那里,直到离开。
给定 个事件(按顺序发生),事件有两种类型:
- E:乘客进入电车。
- L P:乘客离开电车,其中 是该乘客进入时的事件编号(保证事件 是 E 类型,且不会重复离开)。
保证每次乘客进入时,电车至少有一个空座位。
输入格式
第一行包含两个整数 和 ,表示行数和事件数。
接下来 行,每行描述一个事件:
- 如果是 E 类型,则只有一个字符
E。 - 如果是 L 类型,则为
L P,其中 ( 是当前事件编号)。
输出格式
对于每个 E 类型的事件,按事件顺序输出一行,包含乘客选择的座位的行号和列号,用空格隔开。
样例
样例 1
输入
3 7
E
E
E
L 2
E
L 1
E
输出
1 1
3 2
1 2
3 1
1 1
样例 2
输入
13 9
E
E
E
E
E
E
E
E
E
输出
1 1
13 2
7 1
4 2
10 1
2 2
3 1
5 1
6 2
样例 3
输入
10 9
E
E
E
E
L 3
E
E
L 6
E
输出
1 1
10 2
5 2
7 1
4 2
2 2
4 1
数据范围与提示
| 数据比例 | 范围 | 范围 |
|---|---|---|
| 25% | ||
| 45% | ||
| 65% | ||
| 100% |
注意: 可能很大,但 相对较小,需要高效算法。