結果
| 問題 |
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)
ゆるく