#include <stdio.h>
#include <mpi.h>
#define MAX_SIZE 16
int main(int argc, char **argv)
{
int size = 0, rank = 0, buf = 0, i = 0;
int array[MAX_SIZE];
int answer[MAX_SIZE];
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Allgather(&rank, 1, MPI_INT, array, 1, MPI_INT, MPI_COMM_WORLD);
for (i = 0; i < size; i++)
{
array[i] = array[i] - rank - 2;
}
MPI_Reduce(array, answer, size, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
if (rank == 0)
{
for (i = 0; i < size; i++)
{
}
}
MPI_Finalize();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtcGkuaD4KI2RlZmluZSBNQVhfU0laRSAxNgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQp7CiAgICBpbnQgc2l6ZSA9IDAsIHJhbmsgPSAwLCBidWYgPSAwLCBpID0gMDsKICAgIGludCBhcnJheVtNQVhfU0laRV07CiAgICBpbnQgYW5zd2VyW01BWF9TSVpFXTsKCiAgICBNUElfSW5pdCgmYXJnYywgJmFyZ3YpOwogICAgTVBJX0NvbW1fc2l6ZShNUElfQ09NTV9XT1JMRCwgJnNpemUpOwogICAgTVBJX0NvbW1fcmFuayhNUElfQ09NTV9XT1JMRCwgJnJhbmspOwogICAgTVBJX0FsbGdhdGhlcigmcmFuaywgMSwgTVBJX0lOVCwgYXJyYXksIDEsIE1QSV9JTlQsIE1QSV9DT01NX1dPUkxEKTsKCiAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQogICAgewogICAgICAgIGFycmF5W2ldID0gYXJyYXlbaV0gLSByYW5rIC0gMjsKICAgIH0KCiAgICBNUElfUmVkdWNlKGFycmF5LCBhbnN3ZXIsIHNpemUsIE1QSV9JTlQsIE1QSV9TVU0sIDAsIE1QSV9DT01NX1dPUkxEKTsKCiAgICBpZiAocmFuayA9PSAwKQogICAgewogICAgICAgIGZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBwcmludGYoIiVkICIsIGFuc3dlcltpXSk7CiAgICAgICAgfQogICAgICAgIHByaW50ZigiXG4iKTsKICAgIH0KCiAgICBNUElfRmluYWxpemUoKTsKICAgIHJldHVybiAwOwp9Cg==