102 lines
2.6 KiB
Text
102 lines
2.6 KiB
Text
struct Edge {
|
|
int weight;
|
|
int source;
|
|
int target;
|
|
Edge next;
|
|
bool hasNext
|
|
}
|
|
|
|
int min(int x, int y) {
|
|
if (x < y) {
|
|
return x;
|
|
} else {
|
|
return y;
|
|
}
|
|
}
|
|
|
|
int maximum(int x, int y) {
|
|
if (x < y | x == 5000) {
|
|
return y;
|
|
} else {
|
|
return x;
|
|
}
|
|
}
|
|
|
|
int program(int argc, string[] argv) {
|
|
var n = 10;
|
|
var arr = new int[][10];
|
|
|
|
for (var i = 0; i < 10; i = i + 1;) {
|
|
arr[i] = new int[10];
|
|
for (var j = 0; j < 10; j = j + 1;) {
|
|
if (i == j) {
|
|
arr[i][j] = 0;
|
|
} else {
|
|
arr[i][j] = 5000;
|
|
}
|
|
}
|
|
}
|
|
|
|
var e0 = new Edge {weight = 4; source = 1; target = 2; next = Edge null; hasNext = false};
|
|
var e1 = new Edge {weight = 3; source = 2; target = 0; next = e0; hasNext = true};
|
|
var e2 = new Edge {weight = 4; source = 8; target = 5; next = e1; hasNext = true};
|
|
var e3 = new Edge {weight = 1; source = 5; target = 7; next = e2; hasNext = true};
|
|
var e4 = new Edge {weight = 2; source = 3; target = 1; next = e3; hasNext = true};
|
|
var e5 = new Edge {weight = 3; source = 5; target = 4; next = e4; hasNext = true};
|
|
var e6 = new Edge {weight = 7; source = 2; target = 1; next = e5; hasNext = true};
|
|
var e7 = new Edge {weight = 5; source = 3; target = 8; next = e6; hasNext = true};
|
|
var e8 = new Edge {weight = 8; source = 9; target = 4; next = e7; hasNext = true};
|
|
var e9 = new Edge {weight = 3; source = 2; target = 7; next = e8; hasNext = true};
|
|
var e10 = new Edge {weight = 3; source = 0; target = 2; next = e9; hasNext = true};
|
|
var e11 = new Edge {weight = 0; source = 0; target = 3; next = e10; hasNext = true};
|
|
var e12 = new Edge {weight = 4; source = 3; target = 2; next = e11; hasNext = true};
|
|
var e13 = new Edge {weight = 2; source = 1; target = 8; next = e12; hasNext = true};
|
|
var e14 = new Edge {weight = 7; source = 5; target = 1; next = e13; hasNext = true};
|
|
|
|
|
|
var e = e14;
|
|
while(e.hasNext) {
|
|
arr[e.source][e.target] = e.weight;
|
|
e = e.next;
|
|
}
|
|
arr[e.source][e.target] = e.weight;
|
|
|
|
/*
|
|
arr[1][2] = 4;
|
|
arr[2][0] = 3;
|
|
arr[8][5] = 4;
|
|
arr[5][7] = 1;
|
|
arr[3][1] = 2;
|
|
arr[5][4] = 3;
|
|
arr[2][1] = 7;
|
|
arr[3][8] = 5;
|
|
arr[9][4] = 8;
|
|
arr[2][7] = 3;
|
|
arr[0][2] = 3;
|
|
arr[0][3] = 0;
|
|
arr[3][2] = 4;
|
|
arr[1][8] = 2;
|
|
arr[5][1] = 7;
|
|
*/
|
|
|
|
|
|
for (var k = 0; k < n; k = k + 1;) {
|
|
for (var i = 0; i < n; i = i + 1;) {
|
|
for (var j = 0; j < n; j = j + 1;) {
|
|
arr[i][j] = min(arr[i][k] + arr[k][j], arr[i][j]);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
var max = 0;
|
|
for (var i = 0; i < 10; i = i + 1;) {
|
|
for (var j = 0; j < 10; j = j + 1;) {
|
|
max = maximum(arr[i][j], max);
|
|
}
|
|
}
|
|
|
|
return max;
|
|
}
|
|
|
|
|