#include <stdio.h>
void warshall(int n, int adj[10][10]) {
int i, j, k;
for (k = 1; k <= n; k++) {
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
adj[i][j] = adj[i][j] || (adj[i][k] && adj[i][k]);
}
}
}
}
int main() {
int n, i, j, adj[10][10];
printf("Enter number of vertices: "); printf("Enter adjacency matrix (0/1):\n"); for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
warshall(n, adj);
printf("\nTransitive Closure Matrix:\n"); for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++)
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIHdhcnNoYWxsKGludCBuLCBpbnQgYWRqWzEwXVsxMF0pIHsKICAgIGludCBpLCBqLCBrOwogICAgZm9yIChrID0gMTsgayA8PSBuOyBrKyspIHsKICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgICAgICBmb3IgKGogPSAxOyBqIDw9IG47IGorKykgewogICAgICAgICAgICAgICAgYWRqW2ldW2pdID0gYWRqW2ldW2pdIHx8IChhZGpbaV1ba10gJiYgYWRqW2ldW2tdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbiwgaSwgaiwgYWRqWzEwXVsxMF07CiAgICBwcmludGYoIkVudGVyIG51bWJlciBvZiB2ZXJ0aWNlczogIik7CiAgICBzY2FuZigiJWQiLCAmbik7CiAgICBwcmludGYoIkVudGVyIGFkamFjZW5jeSBtYXRyaXggKDAvMSk6XG4iKTsKICAgIGZvciAoaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgICAgIGZvciAoaiA9IDE7IGogPD0gbjsgaisrKQogICAgICAgICAgICBzY2FuZigiJWQiLCAmYWRqW2ldW2pdKTsKICAgIAogICAgd2Fyc2hhbGwobiwgYWRqKTsKICAgIAogICAgcHJpbnRmKCJcblRyYW5zaXRpdmUgQ2xvc3VyZSBNYXRyaXg6XG4iKTsKICAgIGZvciAoaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgZm9yIChqID0gMTsgaiA8PSBuOyBqKyspCiAgICAgICAgICAgIHByaW50ZigiJWQgIiwgYWRqW2ldW2pdKTsKICAgICAgICBwcmludGYoIlxuIik7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==