shared rio { int c; int m; int salec = 0, salem = 0; } Canibal() { region rio when (salec == 0) do { c++; } region rio when ( (salec > 0) || ((c >= 3) || (m >= 2) ) ) do { if (salec) { salec--; } else { if (c >= 3) { c-=3; salec = 2; printf("Pasaron tres canibales\n"); } if (m >= 2) { m-=2; c--; salem = 2; printf("Pasaron dos misioneros y un canibal\n"); } } } // region }