| Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 141660 | 胡海峰老师 | 同行列对角线的格 | Python3 | Wrong Answer | 32 MS | 3856 KB | 1565 | 2025-12-27 19:49:45 |
# 读取输入 n, i, j = map(int, input().split()) # 1. 输出同一行的格子位置 row_positions = [] for col in range(1, n + 1): # 列从1到n row_positions.append("({0},{1})".format(i, col)) print(" ".join(row_positions)) # 2. 输出同一列的格子位置 col_positions = [] for row in range(1, n + 1): # 行从1到n col_positions.append("({0},{1})".format(row, j)) print(" ".join(col_positions)) # 3. 输出左上到右下对角线的格子位置 diag1_positions = [] # 找到对角线的起点(左上角) start_row = i - min(i, j) + 1 start_col = j - min(i, j) + 1 # 从起点开始沿着对角线直到边界 row, col = start_row, start_col while row <= n and col <= n: diag1_positions.append("({0},{1})".format(row, col)) row += 1 col += 1 # 移除起点重新排序(从左上到右下) target = "({0},{1})".format(i, j) diag1_positions = diag1_positions[diag1_positions.index(target):] print(" ".join(diag1_positions)) # 4. 输出左下到右上对角线的格子位置 diag2_positions = [] # 对于左下到右上的对角线,行+列 = 常数 diag_sum = i + j for row in range(1, n + 1): col = diag_sum - row if 1 <= col <= n: # 列要在有效范围内 diag2_positions.append("({0},{1})".format(row, col)) # 按行从大到小排序(从下到上) def get_row_number(pos_str): # 从"(x,y)"字符串中提取x return int(pos_str.split(',')[0][1:]) diag2_positions.sort(key=get_row_number, reverse=True) print(" ".join(diag2_positions))
------Input------
4 2 3
------Answer-----
(2,1) (2,2) (2,3) (2,4) (1,3) (2,3) (3,3) (4,3) (1,2) (2,3) (3,4) (4,1) (3,2) (2,3) (1,4)
------Your output-----
(2,1) (2,2) (2,3) (2,4) (1,3) (2,3) (3,3) (4,3) (2,3) (3,4) (4,1) (3,2) (2,3) (1,4)