A22935. 交叉和
填空题
困难
知识点
题目描述
交叉和
题目描述
有一个 h 行 w 列的网格。从上往下第 i 行、从左往右第 j 列的格子 (i,j)(i,j) 中写有整数 Ai,j 。对于所有格子 (i,j)(i,j),请计算以下值:
与格子 (i,j)(i,j)在同一行或同一列的所有格子中写的整数的总和。
输入格式
第一行:两个整数 h和w,表示行数和列数。
接下来有 h 行:每行 w 个整数,表示aij。
输出格式
输出共 h 行,每行 w 个整数。
相邻两个整数之间用单个空格隔开。
输入样例#1
3 3
1 1 1
2 2 2
3 3 3输出样例#1
8 8 8
10 10 10
12 12 12 输入样例#2
2 10
3 1 4 1 5 9 2 6 5 3
5 8 9 7 9 3 2 3 8 4输出样例#2
44 47 48 46 48 42 41 42 47 43
61 59 62 59 63 67 60 64 63 61数据范围
2≤h,w≤20002≤h,w≤2000
1≤aij≤991≤aij≤99
参考答案
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 1e9;
int h, w, ans, a[2010][2010], s1[2010], s2[2010];
int main(){
scanf("%d%d", &h, &w);
for(int i = 1; i <= h; i++)
for(int j = 1, x; j <= w; j++)
scanf("%d", &x), a[i][j] = x, s1[i] += x, s2[j] += x;
for(int i = 1; i <= h; i++){
for(int j = 1; j <= w; j++)
printf("%d ", s1[i] + s2[j] - a[i][j]);
puts("");
}
return 0;
}
上一题
下一题