結果
| 問題 |
No.1147 土偶Ⅱ
|
| ユーザー |
mkawa2
|
| 提出日時 | 2020-08-06 11:36:46 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 37 ms / 500 ms |
| コード長 | 852 bytes |
| コンパイル時間 | 247 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 10,752 KB |
| 最終ジャッジ日時 | 2024-10-11 10:13:48 |
| 合計ジャッジ時間 | 1,614 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 20 |
ソースコード
def solve():
# 友達関係をbitで管理する
fri = [0] * n
for _ in range(m):
a, b = map(int, input().split())
fri[a - 1] |= 1 << (b - 1)
fri[b - 1] |= 1 << (a - 1)
# 悪い(「良い」ではない)関係を見つける
# 「友達でない」「共通の友達がいる」という条件を満たす2人が悪い関係
bad = [[False] * n for _ in range(n)]
for a in range(n):
for b in range(a):
if fri[a] >> b & 1 == 0 and fri[a] & fri[b]:
bad[a][b] = True
# 3人の関係を全探索
ans = 0
for a in range(n):
for b in range(a):
if bad[a][b]: continue
for c in range(b):
if bad[a][c] or bad[b][c]: continue
ans += 1
print(ans)
n,m=map(int,input().split())
solve()
mkawa2