py的题解
2025-11-02 11:34:48
发布于:上海
2阅读
0回复
0点赞
n, m, x, y, k = map(int, input().split())
grid = [list(map(int, input().split())) for _ in range(n)]
# 计算向东走的结果
sum_east = sum(grid[x-1][j] for j in range(m)) # x是1-based,转换为0-based索引
if sum_east == 0:
east = float('inf')
else:
t = max(0, (k - 1) // sum_east)
total = t * sum_east
if total >= k:
east = t * m
else:
need = k - total
cnt = 0
current = 0
# 从初始列y的下一列开始累加(1-based)
start_col = y # 第一步是y+1(1-based),对应索引y(0-based)
for _ in range(m):
col_idx = (start_col + cnt) % m # 0-based
current += grid[x-1][col_idx]
cnt += 1
if current >= need:
break
east = t * m + cnt
# 计算向南走的结果
sum_south = sum(grid[i][y-1] for i in range(n)) # y是1-based,转换为0-based索引
if sum_south == 0:
south = float('inf')
else:
t = max(0, (k - 1) // sum_south)
total = t * sum_south
if total >= k:
south = t * n
else:
need = k - total
cnt = 0
current = 0
# 从初始行x的下一行开始累加(1-based)
start_row = x # 第一步是x+1(1-based),对应索引x(0-based)
for _ in range(n):
row_idx = (start_row + cnt) % n # 0-based
current += grid[row_idx][y-1]
cnt += 1
if current >= need:
break
south = t * n + cnt
print(east, south)
这里空空如也







有帮助,赞一个