#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define SIZE 6
int main()
{
int a[SIZE][SIZE]; // матрица связей
int d[SIZE]; // минимальное расстояние
int v[SIZE]; // посещенные вершины
int temp;
int minindex, min;
system("chcp 1251");
system("cls");
// Инициализация матрицы связей
for (int i = 0; i<SIZE; i++)
{
a[i][i] = 0;
for (int j = i + 1; j<SIZE; j++) {
printf("Введите расстояние %d - %d: ", i + 1, j + 1);
scanf("%d", &temp);
a[i][j] = temp;
a[j][i] = temp;
}
}
// Вывод матрицы связей
for (int i = 0; i<SIZE; i++)
{
for (int j = 0; j<SIZE; j++)
printf("%5d ", a[i][j]);
printf("\n");
}
//Инициализация вершин и расстояний
for (int i = 0; i<SIZE; i++)
{
d[i] = 10000;
v[i] = 1;
}
d[0] = 0;
// Шаг алгоритма
do {
minindex = 10000;
min = 10000;
for (int i = 0; i<SIZE; i++)
{ // Если вершину ещё не обошли и вес меньше min
if ((v[i] == 1) && (d[i]<min))
{ // Переприсваиваем значения
min = d[i];
minindex = i;
}
}
// Добавляем найденный минимальный вес
// к текущему весу вершины
// и сравниваем с текущим минимальным весом вершины
if (minindex != 10000)
{
for (int i = 0; i<SIZE; i++)
{
if (a[minindex][i] > 0)
{
temp = min + a[minindex][i];
if (temp < d[i])
{
d[i] = temp;
}
}
}
v[minindex] = 0;
}
} while (minindex < 10000);
// Вывод кратчайших расстояний до вершин
printf("\nКратчайшие расстояния до вершин: \n");
for (int i = 0; i<SIZE; i++)
printf("%5d ", d[i]);
// Восстановление пути
int ver[SIZE]; // массив посещенных вершин
int end = 4; // индекс конечной вершины = 5 - 1
ver[0] = end + 1; // начальный элемент - конечная вершина
int k = 1; // индекс предыдущей вершины
int weight = d[end]; // вес конечной вершины
while (end > 0) // пока не дошли до начальной вершины
{
for(int i=0; i<SIZE; i++) // просматриваем все вершины
if (a[end][i] != 0) // если связь есть
{
int temp = weight - a[end][i]; // определяем вес пути из предыдущей вершины
if (temp == d[i]) // если вес совпал с рассчитанным
{ // значит из этой вершины и был переход
weight = temp; // сохраняем новый вес
end = i; // сохраняем предыдущую вершину
ver[k] = i + 1; // и записываем ее в массив
k++;
}
}
}
// Вывод пути (начальная вершина оказалась в конце массива из k элементов)
printf("\nВывод кратчайшего пути\n");
for (int i = k-1; i>=0; i--)
printf("%3d ", ver[i]);
getchar(); getchar();
return 0;
}
I2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojZGVmaW5lIFNJWkUgNgppbnQgbWFpbigpCnsKICBpbnQgYVtTSVpFXVtTSVpFXTsgLy8g0LzQsNGC0YDQuNGG0LAg0YHQstGP0LfQtdC5CiAgaW50IGRbU0laRV07IC8vINC80LjQvdC40LzQsNC70YzQvdC+0LUg0YDQsNGB0YHRgtC+0Y/QvdC40LUKICBpbnQgdltTSVpFXTsgLy8g0L/QvtGB0LXRidC10L3QvdGL0LUg0LLQtdGA0YjQuNC90YsKICBpbnQgdGVtcDsKICBpbnQgbWluaW5kZXgsIG1pbjsKICBzeXN0ZW0oImNoY3AgMTI1MSIpOwogIHN5c3RlbSgiY2xzIik7CiAgLy8g0JjQvdC40YbQuNCw0LvQuNC30LDRhtC40Y8g0LzQsNGC0YDQuNGG0Ysg0YHQstGP0LfQtdC5CiAgZm9yIChpbnQgaSA9IDA7IGk8U0laRTsgaSsrKQogIHsKICAgIGFbaV1baV0gPSAwOwogICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqPFNJWkU7IGorKykgewogICAgICBwcmludGYoItCS0LLQtdC00LjRgtC1INGA0LDRgdGB0YLQvtGP0L3QuNC1ICVkIC0gJWQ6ICIsIGkgKyAxLCBqICsgMSk7CiAgICAgIHNjYW5mKCIlZCIsICZ0ZW1wKTsKICAgICAgYVtpXVtqXSA9IHRlbXA7CiAgICAgIGFbal1baV0gPSB0ZW1wOwogICAgfQogIH0KICAvLyDQktGL0LLQvtC0INC80LDRgtGA0LjRhtGLINGB0LLRj9C30LXQuQogIGZvciAoaW50IGkgPSAwOyBpPFNJWkU7IGkrKykKICB7CiAgICBmb3IgKGludCBqID0gMDsgajxTSVpFOyBqKyspCiAgICAgIHByaW50ZigiJTVkICIsIGFbaV1bal0pOwogICAgcHJpbnRmKCJcbiIpOwogIH0KICAvL9CY0L3QuNGG0LjQsNC70LjQt9Cw0YbQuNGPINCy0LXRgNGI0LjQvSDQuCDRgNCw0YHRgdGC0L7Rj9C90LjQuQogIGZvciAoaW50IGkgPSAwOyBpPFNJWkU7IGkrKykKICB7CiAgICBkW2ldID0gMTAwMDA7CiAgICB2W2ldID0gMTsKICB9CiAgZFswXSA9IDA7CiAgLy8g0KjQsNCzINCw0LvQs9C+0YDQuNGC0LzQsAogIGRvIHsKICAgIG1pbmluZGV4ID0gMTAwMDA7CiAgICBtaW4gPSAxMDAwMDsKICAgIGZvciAoaW50IGkgPSAwOyBpPFNJWkU7IGkrKykKICAgIHsgLy8g0JXRgdC70Lgg0LLQtdGA0YjQuNC90YMg0LXRidGRINC90LUg0L7QsdC+0YjQu9C4INC4INCy0LXRgSDQvNC10L3RjNGI0LUgbWluCiAgICAgIGlmICgodltpXSA9PSAxKSAmJiAoZFtpXTxtaW4pKQogICAgICB7IC8vINCf0LXRgNC10L/RgNC40YHQstCw0LjQstCw0LXQvCDQt9C90LDRh9C10L3QuNGPCiAgICAgICAgbWluID0gZFtpXTsKICAgICAgICBtaW5pbmRleCA9IGk7CiAgICAgIH0KICAgIH0KICAgIC8vINCU0L7QsdCw0LLQu9GP0LXQvCDQvdCw0LnQtNC10L3QvdGL0Lkg0LzQuNC90LjQvNCw0LvRjNC90YvQuSDQstC10YEKICAgIC8vINC6INGC0LXQutGD0YnQtdC80YMg0LLQtdGB0YMg0LLQtdGA0YjQuNC90YsKICAgIC8vINC4INGB0YDQsNCy0L3QuNCy0LDQtdC8INGBINGC0LXQutGD0YnQuNC8INC80LjQvdC40LzQsNC70YzQvdGL0Lwg0LLQtdGB0L7QvCDQstC10YDRiNC40L3RiwogICAgaWYgKG1pbmluZGV4ICE9IDEwMDAwKQogICAgewogICAgICBmb3IgKGludCBpID0gMDsgaTxTSVpFOyBpKyspCiAgICAgIHsKICAgICAgICBpZiAoYVttaW5pbmRleF1baV0gPiAwKQogICAgICAgIHsKICAgICAgICAgIHRlbXAgPSBtaW4gKyBhW21pbmluZGV4XVtpXTsKICAgICAgICAgIGlmICh0ZW1wIDwgZFtpXSkKICAgICAgICAgIHsKICAgICAgICAgICAgZFtpXSA9IHRlbXA7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIHZbbWluaW5kZXhdID0gMDsKICAgIH0KICB9IHdoaWxlIChtaW5pbmRleCA8IDEwMDAwKTsKICAvLyDQktGL0LLQvtC0INC60YDQsNGC0YfQsNC50YjQuNGFINGA0LDRgdGB0YLQvtGP0L3QuNC5INC00L4g0LLQtdGA0YjQuNC9CiAgcHJpbnRmKCJcbtCa0YDQsNGC0YfQsNC50YjQuNC1INGA0LDRgdGB0YLQvtGP0L3QuNGPINC00L4g0LLQtdGA0YjQuNC9OiBcbiIpOwogIGZvciAoaW50IGkgPSAwOyBpPFNJWkU7IGkrKykKICAgIHByaW50ZigiJTVkICIsIGRbaV0pOwoKICAvLyDQktC+0YHRgdGC0LDQvdC+0LLQu9C10L3QuNC1INC/0YPRgtC4CiAgaW50IHZlcltTSVpFXTsgLy8g0LzQsNGB0YHQuNCyINC/0L7RgdC10YnQtdC90L3Ri9GFINCy0LXRgNGI0LjQvQogIGludCBlbmQgPSA0OyAvLyDQuNC90LTQtdC60YEg0LrQvtC90LXRh9C90L7QuSDQstC10YDRiNC40L3RiyA9IDUgLSAxCiAgdmVyWzBdID0gZW5kICsgMTsgLy8g0L3QsNGH0LDQu9GM0L3Ri9C5INGN0LvQtdC80LXQvdGCIC0g0LrQvtC90LXRh9C90LDRjyDQstC10YDRiNC40L3QsAogIGludCBrID0gMTsgLy8g0LjQvdC00LXQutGBINC/0YDQtdC00YvQtNGD0YnQtdC5INCy0LXRgNGI0LjQvdGLCiAgaW50IHdlaWdodCA9IGRbZW5kXTsgLy8g0LLQtdGBINC60L7QvdC10YfQvdC+0Lkg0LLQtdGA0YjQuNC90YsKCiAgd2hpbGUgKGVuZCA+IDApIC8vINC/0L7QutCwINC90LUg0LTQvtGI0LvQuCDQtNC+INC90LDRh9Cw0LvRjNC90L7QuSDQstC10YDRiNC40L3RiwogIHsKICAgIGZvcihpbnQgaT0wOyBpPFNJWkU7IGkrKykgLy8g0L/RgNC+0YHQvNCw0YLRgNC40LLQsNC10Lwg0LLRgdC1INCy0LXRgNGI0LjQvdGLCiAgICAgIGlmIChhW2VuZF1baV0gIT0gMCkgICAvLyDQtdGB0LvQuCDRgdCy0Y/Qt9GMINC10YHRgtGMCiAgICAgIHsKICAgICAgICBpbnQgdGVtcCA9IHdlaWdodCAtIGFbZW5kXVtpXTsgLy8g0L7Qv9GA0LXQtNC10LvRj9C10Lwg0LLQtdGBINC/0YPRgtC4INC40Lcg0L/RgNC10LTRi9C00YPRidC10Lkg0LLQtdGA0YjQuNC90YsKICAgICAgICBpZiAodGVtcCA9PSBkW2ldKSAvLyDQtdGB0LvQuCDQstC10YEg0YHQvtCy0L/QsNC7INGBINGA0LDRgdGB0YfQuNGC0LDQvdC90YvQvAogICAgICAgIHsgICAgICAgICAgICAgICAgIC8vINC30L3QsNGH0LjRgiDQuNC3INGN0YLQvtC5INCy0LXRgNGI0LjQvdGLINC4INCx0YvQuyDQv9C10YDQtdGF0L7QtAogICAgICAgICAgd2VpZ2h0ID0gdGVtcDsgLy8g0YHQvtGF0YDQsNC90Y/QtdC8INC90L7QstGL0Lkg0LLQtdGBCiAgICAgICAgICBlbmQgPSBpOyAgICAgICAvLyDRgdC+0YXRgNCw0L3Rj9C10Lwg0L/RgNC10LTRi9C00YPRidGD0Y4g0LLQtdGA0YjQuNC90YMKICAgICAgICAgIHZlcltrXSA9IGkgKyAxOyAvLyDQuCDQt9Cw0L/QuNGB0YvQstCw0LXQvCDQtdC1INCyINC80LDRgdGB0LjQsgogICAgICAgICAgaysrOwogICAgICAgIH0KICAgICAgfQogIH0KICAvLyDQktGL0LLQvtC0INC/0YPRgtC4ICjQvdCw0YfQsNC70YzQvdCw0Y8g0LLQtdGA0YjQuNC90LAg0L7QutCw0LfQsNC70LDRgdGMINCyINC60L7QvdGG0LUg0LzQsNGB0YHQuNCy0LAg0LjQtyBrINGN0LvQtdC80LXQvdGC0L7QsikKICBwcmludGYoIlxu0JLRi9Cy0L7QtCDQutGA0LDRgtGH0LDQudGI0LXQs9C+INC/0YPRgtC4XG4iKTsKICBmb3IgKGludCBpID0gay0xOyBpPj0wOyBpLS0pCiAgICBwcmludGYoIiUzZCAiLCB2ZXJbaV0pOwogIGdldGNoYXIoKTsgZ2V0Y2hhcigpOwogIHJldHVybiAwOwp9
Main.java:1: error: illegal character: '#'
#define _CRT_SECURE_NO_WARNINGS
^
Main.java:2: error: illegal character: '#'
#include <stdio.h>
^
Main.java:3: error: illegal character: '#'
#include <stdlib.h>
^
Main.java:4: error: illegal character: '#'
#define SIZE 6
^
Main.java:8: error: class, interface, or enum expected
int d[SIZE]; // ??????????? ??????????
^
Main.java:9: error: class, interface, or enum expected
int v[SIZE]; // ?????????? ???????
^
Main.java:10: error: class, interface, or enum expected
int temp;
^
Main.java:11: error: class, interface, or enum expected
int minindex, min;
^
Main.java:12: error: class, interface, or enum expected
system("chcp 1251");
^
Main.java:13: error: class, interface, or enum expected
system("cls");
^
Main.java:15: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:15: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:15: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:18: error: class, interface, or enum expected
for (int j = i + 1; j<SIZE; j++) {
^
Main.java:18: error: class, interface, or enum expected
for (int j = i + 1; j<SIZE; j++) {
^
Main.java:18: error: class, interface, or enum expected
for (int j = i + 1; j<SIZE; j++) {
^
Main.java:20: error: class, interface, or enum expected
scanf("%d", &temp);
^
Main.java:21: error: class, interface, or enum expected
a[i][j] = temp;
^
Main.java:22: error: class, interface, or enum expected
a[j][i] = temp;
^
Main.java:23: error: class, interface, or enum expected
}
^
Main.java:26: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:26: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:28: error: class, interface, or enum expected
for (int j = 0; j<SIZE; j++)
^
Main.java:28: error: class, interface, or enum expected
for (int j = 0; j<SIZE; j++)
^
Main.java:30: error: class, interface, or enum expected
printf("\n");
^
Main.java:31: error: class, interface, or enum expected
}
^
Main.java:33: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:33: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:36: error: class, interface, or enum expected
v[i] = 1;
^
Main.java:37: error: class, interface, or enum expected
}
^
Main.java:40: error: class, interface, or enum expected
do {
^
Main.java:42: error: class, interface, or enum expected
min = 10000;
^
Main.java:43: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:43: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:43: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:48: error: class, interface, or enum expected
minindex = i;
^
Main.java:49: error: class, interface, or enum expected
}
^
Main.java:56: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:56: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:61: error: class, interface, or enum expected
if (temp < d[i])
^
Main.java:64: error: class, interface, or enum expected
}
^
Main.java:68: error: class, interface, or enum expected
}
^
Main.java:71: error: class, interface, or enum expected
printf("\n?????????? ?????????? ?? ??????: \n");
^
Main.java:72: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:72: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:72: error: class, interface, or enum expected
for (int i = 0; i<SIZE; i++)
^
Main.java:76: error: class, interface, or enum expected
int ver[SIZE]; // ?????? ?????????? ??????
^
Main.java:77: error: class, interface, or enum expected
int end = 4; // ?????? ???????? ??????? = 5 - 1
^
Main.java:78: error: class, interface, or enum expected
ver[0] = end + 1; // ????????? ??????? - ???????? ???????
^
Main.java:79: error: class, interface, or enum expected
int k = 1; // ?????? ?????????? ???????
^
Main.java:80: error: class, interface, or enum expected
int weight = d[end]; // ??? ???????? ???????
^
Main.java:82: error: class, interface, or enum expected
while (end > 0) // ???? ?? ????? ?? ????????? ???????
^
Main.java:84: error: class, interface, or enum expected
for(int i=0; i<SIZE; i++) // ????????????? ??? ???????
^
Main.java:84: error: class, interface, or enum expected
for(int i=0; i<SIZE; i++) // ????????????? ??? ???????
^
Main.java:88: error: class, interface, or enum expected
if (temp == d[i]) // ???? ??? ?????? ? ????????????
^
Main.java:91: error: class, interface, or enum expected
end = i; // ????????? ?????????? ???????
^
Main.java:92: error: class, interface, or enum expected
ver[k] = i + 1; // ? ?????????? ?? ? ??????
^
Main.java:93: error: class, interface, or enum expected
k++;
^
Main.java:94: error: class, interface, or enum expected
}
^
Main.java:99: error: class, interface, or enum expected
for (int i = k-1; i>=0; i--)
^
Main.java:99: error: class, interface, or enum expected
for (int i = k-1; i>=0; i--)
^
Main.java:99: error: class, interface, or enum expected
for (int i = k-1; i>=0; i--)
^
Main.java:101: error: class, interface, or enum expected
getchar(); getchar();
^
Main.java:101: error: class, interface, or enum expected
getchar(); getchar();
^
Main.java:102: error: class, interface, or enum expected
return 0;
^
Main.java:103: error: class, interface, or enum expected
}
^
66 errors