結果
問題 | No.19 ステージの選択 |
ユーザー |
![]() |
提出日時 | 2014-11-20 02:34:03 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 906 bytes |
コンパイル時間 | 195 ms |
コンパイル使用メモリ | 12,416 KB |
実行使用メモリ | 11,008 KB |
最終ジャッジ日時 | 2025-01-02 19:22:49 |
合計ジャッジ時間 | 2,305 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 21 WA * 3 |
ソースコード
import sys #sys.setrecursionlimit(n) import heapq import re import bisect import random import math import itertools from collections import defaultdict, deque from copy import deepcopy n = int(input()) e = deque([[int(i) for i in input().split()] for i in range(n)]) e.appendleft([0,0]) v = [False] * (n + 1) d = [False] * (n + 1) def dfs(i, j): if d[e[i][1]]: return -1 if i == j: return j if v[e[i][1]]: return -1 v[i] = True ret = dfs(e[i][1], j) if ret == -1: return -1 if e[i][0] < e[ret][0]: return i return ret ans = 0 for i in range(1, n + 1): if d[i]: continue v = [False] * (n + 1) ret = dfs(e[i][1], i) if ret >= 0: ans += e[ret][0] d[ret] = True for _ in range(1, n + 1): for i in range(1, n + 1): if d[e[i][1]] and not(d[i]): ans += e[i][0] / 2 d[i] = True print(ans)