https://ac.nowcoder.com/acm/contest/5803/E
题目描述
恬恬有一个nx n的数组。她在用这个数组玩游戏:
开始时,数组中每一个元素都是0。
恬恬会做某些操作。在一次操作中,她可以将某一行的所有元素同时加上一个值,也可以将某一列的所有元素同时加上一个值。
在几次操作后,一个元素被隐藏了。你能帮助她回忆隐藏的数是几吗?
输入描述
第一行一个整数n(1≤ n≤ 1000)。
接下来n行每行n个整数表示数组a。
第(i+1)行的第j个元素表示aij(aij=-1或0≤ aij ≤ 10000)。-1表示隐藏的元素。
输出描述
仅一个整数表示答案。
示例1
输入
3
1 2 1
0 -1 0
0 1 0
输出
1
思路
data[i][cor_y] - data[i][i]得到的是第在第i行cor_y列相对于第i列的差值
用同一行的data[cor_x][i] 加上这个差值就是data[cor_x][cor_y]的真实值
import sys
n = int(input())
data = []
for i in range(n):
temp = list(map(int, sys.stdin.readline().strip().split()))
data.append(temp)
try:
cor_y = temp.index(-1)
cor_x = i
except:
pass
if cor_x == 0 or cor_y == 0:
ans = data[cor_x][-1] + data[-1][cor_y] - data[-1][-1]
else:
ans = data[cor_x][0] + data[0][cor_y] - data[0][0]
print(str(ans)) 
京公网安备 11010502036488号