Hướng dẫn giải của MATRIX02: Tổng cột 1 và dòng n của bảng
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Hướng dẫn giải
Cho bảng số gồm n hàng và m cột ~n, m \le 1000~, các phần tử có giá trị tuyệt đối không quá ~1000~. Hãy tính tổng các số trong cột 1 và tổng các số trong dòng n của bảng, phần tử A[n][1] được tính hai lần. Đọc từ file MATRIX02.INP và ghi ra file MATRIX02.OUT.
Cách làm
Duyệt tất cả các phần tử bằng hai vòng for lồng nhau, đọc từng số x. Nếu cột của x là cột 1 (j = 1) thì cộng x vào tong. Nếu hàng của x là hàng n (i = n) thì cộng x vào tong một lần nữa. Phần tử ở góc A[n][1] thuộc cả hai điều kiện nên tự động được cộng hai lần, đúng theo đề.
Đầu chương trình dùng freopen để đọc từ MATRIX02.INP và ghi ra MATRIX02.OUT.
#include <bits/stdc++.h>
using namespace std;
int main() {
// Đọc từ file MATRIX02.INP, ghi ra file MATRIX02.OUT
freopen("MATRIX02.INP", "r", stdin);
freopen("MATRIX02.OUT", "w", stdout);
int n, m;
cin >> n >> m;
long long tong = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
int x;
cin >> x;
// Lấy phần tử thuộc cột 1 (j = 1) hoặc dòng n (i = n)
// Phần tử A[n][1] thuộc cả hai nên được cộng 2 lần
if (j == 1) tong += x;
if (i == n) tong += x;
}
}
cout << tong << "\n";
return 0;
}
Bình luận