#include #define MAXN 20 /* Maximální počet vrcholů */ int d[MAXN][MAXN]; /* Sousedé vrcholů */ int e[MAXN][MAXN]; /* Délky hran do sousedů */ int deg[MAXN]; /* Stupně vrcholů (počty sousedů) */ int solve(int x, int from, int *leaf) /* Hledání nejvzdálenějšího vrcholu */ { int i, l, max, v; *leaf = x; max = 0; for(i=0; i max) { max = l; *leaf = v; } } return max; } int main(void) { int x, y, l; while (scanf("%d%d%d", &x, &y, &l) == 3) { e[x][deg[x]] = l; d[x][deg[x]++] = y; e[y][deg[y]] = l; d[y][deg[y]++] = x; } solve(0, -1, &x); l = solve(x, -1, &y); printf("%d -> %d = %d\n", x, y, l); return 0; }