70 lines
1.1 KiB
C++
70 lines
1.1 KiB
C++
#include <iostream>
|
|
#include <omp.h>
|
|
#include <vector>
|
|
|
|
uint64_t sum_rows(int N, std::vector<std::vector<int>> &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<std::vector<int>> &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<std::vector<int>> matrix(N, std::vector<int>(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;
|
|
} |