consolidate all repos to one for archive
This commit is contained in:
70
semester_5/paralelno_racunanje/naloga_1/main.cpp
Normal file
70
semester_5/paralelno_racunanje/naloga_1/main.cpp
Normal file
@@ -0,0 +1,70 @@
|
||||
#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;
|
||||
}
|
||||
Reference in New Issue
Block a user