結果
問題 |
No.1147 土偶Ⅱ
|
ユーザー |
![]() |
提出日時 | 2020-08-09 00:19:14 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 123 ms / 500 ms |
コード長 | 892 bytes |
コンパイル時間 | 162 ms |
コンパイル使用メモリ | 82,008 KB |
実行使用メモリ | 78,108 KB |
最終ジャッジ日時 | 2024-10-11 10:15:26 |
合計ジャッジ時間 | 2,996 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
ソースコード
# import sys; input = sys.stdin.buffer.readline # sys.setrecursionlimit(10**7) from collections import defaultdict con = 10 ** 9 + 7; INF = float("inf") def getlist(): return list(map(int, input().split())) def warshall_floyd(d, N): for k in range(N): for i in range(N): for j in range(N): d[i][j] = min(d[i][j],d[i][k] + d[k][j]) return d #処理内容 def main(): N, M = getlist() L = [] for i in range(M): a, b = getlist() a -= 1; b -= 1 a, b = list(sorted([a, b])) L.append((a, b)) L = list(set(L)) # print(L) d = [[INF for i in range(N)] for j in range(N)] for a, b in L: d[a][b] = 1 d[b][a] = 1 for i in range(N): d[i][i] = 0 d = warshall_floyd(d, N) ans = 0 for i in range(N): for j in range(i + 1, N): for k in range(j + 1, N): if not 2 in (d[i][j], d[j][k], d[k][i]): ans += 1 print(ans) if __name__ == '__main__': main()