Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Напишите код на С++

Мирослав Вихляев Ученик (79), открыт 13 часов назад
6 ответов
Алексей Антонов Ученик (201) 13 часов назад
Сам пиши, заманал, кто тут программистом стать хочет, ты или я?
PC USER Просветленный (29200) 13 часов назад
DeepSeek пишет код. Проверял.
Николай Веселуха Высший разум (377956) 12 часов назад
 #include <iostream>
#include <limits>
#include <random>
#include <vector>

using namespace std;

class Matrix {
size_t n;
vector<vector<int>> matrix;
friend ostream& operator<<(ostream& out, const Matrix& mx) {
for (const auto& row : mx.matrix) {
for (auto value : row) out << value << ' ';
out.put('\n');
}
return out;
}
public:
using result_t = pair<int, long long>;
explicit Matrix(const size_t n)
: n(n), matrix(n, vector<int>(n)) {}
void fill_random(int l, int r) {
if (r < l) swap(l, r);
uniform_int_distribution uid(l, r);
mt19937 gen{ random_device()() };
for (auto& row : matrix) {
for (auto& value : row) value = uid(gen);
}
}
result_t tr() const {
auto max = numeric_limits<int>::min();
auto sum = 0LL;
for (size_t i = 0; i < n; ++i) {
for (size_t j = i; j < n; ++j) {
if (max < matrix[i][j]) max = matrix[i][j];
sum += matrix[i][j];
}
}
return { max, sum };
}
result_t bl() const {
auto max = numeric_limits<int>::min();
auto sum = 0LL;
for (size_t i = 0; i < n; ++i) {
for (size_t j = 0; j <= i; ++j) {
if (max < matrix[i][j]) max = matrix[i][j];
sum += matrix[i][j];
}
}
return { max, sum };
}
result_t tl() const {
auto max = numeric_limits<int>::min();
auto sum = 0LL;
for (size_t i = 0; i < n; ++i) {
for (size_t j = 0; j < n - i; ++j) {
if (max < matrix[i][j]) max = matrix[i][j];
sum += matrix[i][j];
}
}
return { max, sum };
}
result_t br() const {
auto max = numeric_limits<int>::min();
auto sum = 0LL;
for (size_t i = 0; i < n; ++i) {
for (size_t j = n - 1 - i; j < n; ++j) {
if (max < matrix[i][j]) max = matrix[i][j];
sum += matrix[i][j];
}
}
return { max, sum };
}
};

void show_result(const char* prompt, const Matrix::result_t& result) {
const auto& [max, sum] = result;
cout << prompt << ". max: " << max << ", sum: " << sum << '\n';
}

int main() {
cout << "n: ";
size_t n;
cin >> n;
Matrix matrix(n);
matrix.fill_random(10, 99);
cout << matrix << '\n';
show_result("A", matrix.tr());
show_result("Б", matrix.bl());
show_result("И", matrix.tl());
show_result("К", matrix.br());
}
Похожие вопросы