dev/algorithm
BOJ / 11265ė² / ėėģ§ ģė ķķ° [Go][Python3]
crscnt
2021. 1. 5. 21:00
š©š»š» 문ģ
11265ė²: ėėģ§ ģė ķķ°
ģ ė „ģ 첫 ė²ģ§ø ģ¤ģė ķķ°ģ„ģ ķ¬źø° N(5 ≤ N ≤ 500)ź³¼ ģė¹ģ¤ė„¼ ģģ²ķ ģėģ ģ M(1 ≤ M ≤ 10,000) ģ“ ģ£¼ģ“ģ§ė¤. ź°ź°ģ ķķ°ģ„ģ 1ė²ė¶ķ° Nė²ź¹ģ§ ė²ķøź° ė¶ģ¬ģ ø ģė¤. ė¤ģģė Nź°ģ ģ¤ģ ź±ø
www.acmicpc.net
āš» ķģ“
šØ Go
// https://www.acmicpc.net/problem/11265
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var n, m int
fmt.Fscanln(reader, &n, &m)
graph := make([][]int, n)
for i := 0; i < n; i++ {
graph[i] = make([]int, n)
}
for i := 0; i < n; i++ {
for j := 0; j < n; j++ {
fmt.Fscanf(reader, "%d ", &graph[i][j])
}
}
graph = floydWarshall(graph)
for i := 0; i < m; i++ {
var a, b, c int
fmt.Fscanln(reader, &a, &b, &c)
if graph[a-1][b-1] <= c {
fmt.Fprintln(writer, "Enjoy other party")
} else {
fmt.Fprintln(writer, "Stay here")
}
}
}
func floydWarshall(graph [][]int) [][]int {
for i := 0; i < len(graph); i++ { // j->k ź²½ė”ė³“ė¤ j->i->k ź²½ė”ź° ė¹ ė„ø ź²½ģ° ź°±ģ
for j := 0; j < len(graph); j++ {
for k := 0; k < len(graph); k++ {
if graph[j][i]+graph[i][k] < graph[j][k] {
graph[j][k] = graph[j][i] + graph[i][k]
}
}
}
}
return graph
}
šØ Python3
# https://www.acmicpc.net/problem/11265
import sys
def floyd_warshall(graph):
for i in range(len(graph)):
for j in range(len(graph)):
for k in range(len(graph)):
if graph[j][i] + graph[i][k] < graph[j][k]:
graph[j][k] = graph[j][i] + graph[i][k]
return graph
if __name__ == "__main__":
n, m = list(map(int, sys.stdin.readline().split()))
graph = []
for i in range(n):
graph.append(list(map(int, sys.stdin.readline().split())))
graph = floyd_warshall(graph)
for i in range(m):
a, b, c = list(map(int, sys.stdin.readline().split()))
if graph[a-1][b-1] <= c:
print("Enjoy other party")
else:
print("Stay here")
728x90