#include #include #include uint64_t sum_rows(int N, std::vector> &matrix) { uint64_t result = 1; for (int i = 0; i < N; i++) { int sum = 0; for (int j = 0; j < N; j++) { sum += matrix[i][j]; } result *= sum; } return result; } uint64_t sum_columns(int N, std::vector> &matrix) { uint64_t result = 1; for (int j = 0; j < N; j++) { int sum = 0; for (int i = 0; i < N; i++) { sum += matrix[i][j]; } result *= sum; } return result; } int main() { int N = 3; std::vector> matrix(N, std::vector(N)); int st = 1; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { matrix[i][j] = st++; } } uint64_t result1, result2; #pragma omp parallel { #pragma omp sections { #pragma omp section { result1 = sum_rows(N, matrix); } #pragma omp section { result2 = sum_columns(N, matrix); } } } printf("Rezultat: %ld\n", (result1 + result2)); return 0; }