#include <mpi.h>
#include <iostream>
using namespace std;

int main(int argc, char* argv[]) {
    MPI_Init(&argc, &argv); // Initialize MPI environment
    int rank;
    MPI_Comm_rank(MPI_COMM_WORLD, &rank); // Get process rank

    if (rank == 0) { // Sender
        string message = "Hello from Sender!";
        MPI_Send(message.c_str(), message.size() + 1, MPI_CHAR, 1, 0, MPI_COMM_WORLD);
        cout << "Sender: Message sent.\n";
    } else if (rank == 1) { // Receiver
        char message[100];
        MPI_Recv(message, 100, MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
        cout << "Receiver: Message received: " << message << endl;
    }

    MPI_Finalize(); // Finalize MPI environment
    return 0;
}
