結果

問題 No.1103 Directed Length Sum
ユーザー asumo0729
提出日時 2020-10-17 18:32:54
言語 PyPy3
(7.3.15)
結果
MLE  
実行時間 -
コード長 882 bytes
コンパイル時間 597 ms
コンパイル使用メモリ 81,920 KB
実行使用メモリ 852,344 KB
最終ジャッジ日時 2024-07-21 02:57:20
合計ジャッジ時間 6,168 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other MLE * 1 -- * 21
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
sys.setrecursionlimit(1000000)
stdin=sys.stdin

ip=lambda: int(sp())
fp=lambda: float(sp())
lp=lambda:list(map(int,stdin.readline().split()))
sp=lambda:stdin.readline().rstrip()
yp=lambda:print('Yes')
np=lambda:print('No')

n=ip()
tonari=[[] for _ in range(n)]
st=[0 for _ in range(n)]
for _ in range(n-1):
    a,b=lp()
    tonari[a-1].append(b-1)
    st[b-1]+=1

for i in range(n):
    if st[i]==0:
        stx=i
        break
visit=[-1 for _ in range(n)]
visit[stx]=0
d={}
d[0]=1

def dfs(now,ch):
    for j in tonari[now]:
        if visit[j]==-1:
            visit[j]=ch+1
            if ch+1 not in d:
                d[ch+1]=0
            d[ch+1]+=1
                
            dfs(j,ch+1)


ans=0
dfs(stx,0)
visit.sort(reverse=True)
s=sum(visit)
rest=n-1
for j in visit:
    if d[j]!=0:
        ans+=s
        s-=rest
        rest-=d[j]
        d[j]=0
print(ans)
0