#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) {
// Calculăm panta (m)
m = (Y[1] - Y[0]) / (X[1] - X[0]);
}
MPI_Bcast(&m, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
// Calculăm coeficientul de interceptare (c) folosind punctul A
c = Y[0] - m*X[0];
// Afisăm ecuația dreptei
if (rank == 0) {
printf("Ecuatia dreptei care trece prin punctele A(2,-1) si B(1,-2) este: y = %.2fx + %.2f\n", m
, c
); }
MPI_Finalize();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtcGkuaD4KCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKICAgIGludCByYW5rLCBzaXplOwogICAgCiAgICBNUElfSW5pdCgmYXJnYywgJmFyZ3YpOwogICAgTVBJX0NvbW1fcmFuayhNUElfQ09NTV9XT1JMRCwgJnJhbmspOwogICAgTVBJX0NvbW1fc2l6ZShNUElfQ09NTV9XT1JMRCwgJnNpemUpOwogICAgCiAgICBkb3VibGUgWFtdID0gezIsIDF9OwogICAgZG91YmxlIFlbXSA9IHstMSwgLTJ9OwogICAgZG91YmxlIG0sIGM7CiAgICAKICAgIGlmIChyYW5rID09IDApIHsKICAgICAgICAvLyBDYWxjdWzEg20gcGFudGEgKG0pCiAgICAgICAgbSA9IChZWzFdIC0gWVswXSkgLyAoWFsxXSAtIFhbMF0pOwogICAgfQogICAgCiAgICBNUElfQmNhc3QoJm0sIDEsIE1QSV9ET1VCTEUsIDAsIE1QSV9DT01NX1dPUkxEKTsKICAgIAogICAgLy8gQ2FsY3VsxINtIGNvZWZpY2llbnR1bCBkZSBpbnRlcmNlcHRhcmUgKGMpIGZvbG9zaW5kIHB1bmN0dWwgQQogICAgYyA9IFlbMF0gLSBtKlhbMF07CiAgICAKICAgIC8vIEFmaXPEg20gZWN1YcibaWEgZHJlcHRlaQogICAgaWYgKHJhbmsgPT0gMCkgewogICAgICAgIHByaW50ZigiRWN1YXRpYSBkcmVwdGVpIGNhcmUgdHJlY2UgcHJpbiBwdW5jdGVsZSBBKDIsLTEpIHNpIEIoMSwtMikgZXN0ZTogeSA9ICUuMmZ4ICsgJS4yZlxuIiwgbSwgYyk7CiAgICB9CiAgICAKICAgIE1QSV9GaW5hbGl6ZSgpOwogICAgCiAgICByZXR1cm4gMDsKfQo=