#P17334. PM8317大棋盘上的公爵
PM8317大棋盘上的公爵
题目描述
定义一种棋子“公爵”:它每一步只能向上、下、左或右移动 1 格。
考虑一个大小为 的大棋盘。行和列都从 000000 到 999999 编号。一个格子记作 (列编号, 行编号),其中列编号和行编号都恰好包含六位数字。例如,(499999, 000000) 和 (500000, 000000) 是最底行中间的两个格子。
现在有一个公爵位于坐标为 (x, y) 的格子,其中 x 表示列号,y 表示行号。
公爵的一条路径可以表示为它依次访问过的格子组成的、用空格分隔的列表。例如,(444444, 600000) (444445, 600000) (444445, 599999) 是一条包含两次移动的路径:第一次向右移动一格,第二次向下移动一格。
如果一条路径中没有重复出现的格子,则称它为简单路径。
在所有从起点出发的简单路径中,考虑按完整路径字符串比较时字典序最大的那一条。请输出这条路径的最后一个格子的坐标。
输入格式
输入一行两个整数 x y,分别表示公爵初始位置的列号和行号。
题目定义中的格子表示为 (cccccc, rrrrrr):列号和行号都写成恰好六位数字。输入时不需要读入括号、逗号或前导零,只需读入两个整数即可。
输出格式
输出一行两个整数 x y,表示字典序最大的简单路径的最后一个格子的列号和行号。
数据范围与约定
- 棋盘大小为 。
- 所有行号和列号都是从
000000到999999的六位十进制编号。 - 起点的列号和行号均在
0到999999之间。
提示
若字符串 B 是字符串 A 的真前缀,或者在二者第一个不同位置上 A 的字符更大,则称字符串 A 的字典序大于字符串 B。
输入输出样例 #1
输入 #1
999999 999999
输出 #1
0 999999
说明 #1
公爵位于右上角。它先一路向下走到 (999999, 000000),然后向左一格,再一路向上;之后继续以这种蛇形方式覆盖整个棋盘。最后它来到最左列,并向上走到棋盘左上角,即 (000000, 999999)。
输入输出样例 #2
输入 #2
999999 0
输出 #2
0 0
说明 #2
如果公爵从右下角出发,它同样会走出蛇形路径。这一次,它在奇数列向上走、在偶数列向下走。最终它会沿 000000 列向下移动,并停在 (000000, 000000)。
输入输出样例 #3
输入 #3
0 999998
输出 #3
0 999999
说明 #3
从这个位置出发时,公爵的路径只会访问 2000000 个格子。它先一路向右走到 (999999, 999998),再向上一格到 (999999, 999999),然后一路向左走到 (000000, 999999);此时已经没有未访问过的相邻格子可以继续移动。