#include typedef struct { int sezHran; int hranovaVzd; float cenovaVzd; int odkudOpt; } vrchol; typedef struct { int kam; float cena; } hrana; int main() { int n, m; scanf("%i %i", &n, &m); vrchol V[n+1]; hrana E[m]; int A, B; scanf("%i %i", &A, &B); // pro jednoduchost: // Každá hrana je na vstupu vepsaná z obou konců. int mpos=0; for (int i=0; i V[w].cenovaVzd + E[i].cena) { V[v].cenovaVzd = V[w].cenovaVzd + E[i].cena; // ... zatímco tu cenovou při zpracování. V[v].odkudOpt = w; // (ne že by na tom zvlášť záleželo) } } } } if (V[B].hranovaVzd == -1) { printf("Běda! Žádná cesta naše hrdiny nepropojuje!\n"); return; } printf("Nalezena cesta délky %i a ceny %f. Tu je:\n", V[B].hranovaVzd, V[B].cenovaVzd); int bezec = B; while (A != bezec) { printf("%i, ", bezec); bezec = V[bezec].odkudOpt; } printf ("%i\n", A); return 0; }