#include <stdio.h>
#include <mpi.h>
int main(int argc, char *argv[]) {
int rank, size;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
double X[] = {2, 1};
double Y[] = {-1, -2};
double m, c;
if (rank == 0) {
// Calculam panta (m)
m = (Y[1] - Y[0]) / (X[1] - X[0]);
}
MPI_Bcast(&m, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
// Calculam coeficientul de interceptare (c) folosind punctul A
c = Y[0] - m*X[0];
if (rank == 0) {
printf("Ecuatia dreptei care trece prin punctele A(2,-1) si B(1,-2) este: y = %.2fx + %.2f ", m, c);
}
MPI_Finalize();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtcGkuaD4KCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKICAgIGludCByYW5rLCBzaXplOwogICAgCiAgICBNUElfSW5pdCgmYXJnYywgJmFyZ3YpOwogICAgTVBJX0NvbW1fcmFuayhNUElfQ09NTV9XT1JMRCwgJnJhbmspOwogICAgTVBJX0NvbW1fc2l6ZShNUElfQ09NTV9XT1JMRCwgJnNpemUpOwogICAgCiAgICBkb3VibGUgWFtdID0gezIsIDF9OwogICAgZG91YmxlIFlbXSA9IHstMSwgLTJ9OwogICAgZG91YmxlIG0sIGM7CiAgICAKICAgIGlmIChyYW5rID09IDApIHsKICAgICAgICAvLyBDYWxjdWxhbSBwYW50YSAobSkKICAgICAgICBtID0gKFlbMV0gLSBZWzBdKSAvIChYWzFdIC0gWFswXSk7CiAgICB9CiAgICAKICAgIE1QSV9CY2FzdCgmbSwgMSwgTVBJX0RPVUJMRSwgMCwgTVBJX0NPTU1fV09STEQpOwogICAgCiAgICAvLyBDYWxjdWxhbSBjb2VmaWNpZW50dWwgZGUgaW50ZXJjZXB0YXJlIChjKSBmb2xvc2luZCBwdW5jdHVsIEEKICAgIGMgPSBZWzBdIC0gbSpYWzBdOwogICAgCiAgICBpZiAocmFuayA9PSAwKSB7CiAgICAgICAgcHJpbnRmKCJFY3VhdGlhIGRyZXB0ZWkgY2FyZSB0cmVjZSBwcmluIHB1bmN0ZWxlIEEoMiwtMSkgc2kgQigxLC0yKSBlc3RlOiB5ID0gJS4yZnggKyAlLjJmCiIsIG0sIGMpOwogICAgfQogICAgCiAgICBNUElfRmluYWxpemUoKTsKICAgIAogICAgcmV0dXJuIDA7Cn0=