結果
問題 | No.386 貪欲な領主 |
ユーザー | むらため |
提出日時 | 2019-02-05 13:39:12 |
言語 | Nim (2.0.2) |
結果 |
AC
|
実行時間 | 508 ms / 2,000 ms |
コード長 | 1,053 bytes |
コンパイル時間 | 3,580 ms |
コンパイル使用メモリ | 66,152 KB |
実行使用メモリ | 39,500 KB |
最終ジャッジ日時 | 2024-07-01 11:26:06 |
合計ジャッジ時間 | 6,665 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
6,816 KB |
testcase_01 | AC | 2 ms
6,940 KB |
testcase_02 | AC | 2 ms
6,940 KB |
testcase_03 | AC | 2 ms
6,940 KB |
testcase_04 | AC | 508 ms
39,172 KB |
testcase_05 | AC | 354 ms
24,612 KB |
testcase_06 | AC | 376 ms
25,292 KB |
testcase_07 | AC | 4 ms
6,940 KB |
testcase_08 | AC | 43 ms
6,944 KB |
testcase_09 | AC | 7 ms
6,944 KB |
testcase_10 | AC | 2 ms
6,940 KB |
testcase_11 | AC | 1 ms
6,940 KB |
testcase_12 | AC | 3 ms
6,940 KB |
testcase_13 | AC | 10 ms
6,940 KB |
testcase_14 | AC | 371 ms
25,420 KB |
testcase_15 | AC | 434 ms
39,500 KB |
コンパイルメッセージ
/home/judge/data/code/Main.nim(2, 8) Warning: Deprecated since v1.5; Use auto instead.; any is deprecated [Deprecated] /home/judge/data/code/Main.nim(3, 8) Warning: Deprecated since v1.5; Use auto instead.; any is deprecated [Deprecated]
ソースコード
import sequtils,bitops,strutils proc r:any=stdin.readLine.parseInt proc R:any=stdin.readLine.split.map parseInt var n=r() E=newSeqWith n:newSeq[int]() A=E o:tuple[d:seq[int],p:seq[seq[int]],n,m:int] for _ in 0..<n-1:(let t=R();E[t[0]]&=t[1];E[t[1]]&=t[0]) proc i(e,w:int)=(for t in E[w]:(if t!=e:(A[w]&=t;i(w,t)))) i(-1,0) E=A block: var m=n.fastLog2+1 d=newSeq[int]n p=newSeqWith m:newSeq[int]n proc fp(s,e,cd:int)=(p[0][s]=e;d[s]=cd;for t in E[s]:(if t!=e:fp t,s,cd+1)) fp 0,-1,0 for k in 0..<m-1:(for v in 0..<n:(if p[k][v]<0:p[k+1][v]= -1 else:p[k+1][v]=p[k][p[k][v]])) o=(d,p,n,m) var C=newSeqWith n:r() I=newSeqWith n: -1 a=0 proc x(u,v:int):int= var(u,v)=(u,v) if o.d[u]>o.d[v]:swap u,v for k in 0..<o.m:(if(((o.d[v]-o.d[u])shr k)and 1)!=0:v=o.p[k][v]) if u==v:return u for k in(o.m-1).countdown(0):(if o.p[k][u]!=o.p[k][v]:(u=o.p[k][u];v=o.p[k][v])) return o.p[0][u] proc ff(i,c:int)=(I[i]=C[i]+c;for t in E[i]:ff t,I[i]) ff 0,0 for _ in 0..<r():(let t=R();let p=x(t[0],t[1]);a+=(I[t[0]]+I[t[1]]-2*I[p]+C[p])*t[2]) echo a