結果
問題 |
No.519 アイドルユニット
|
ユーザー |
![]() |
提出日時 | 2017-07-08 12:11:27 |
言語 | Nim (2.2.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,290 bytes |
コンパイル時間 | 3,657 ms |
コンパイル使用メモリ | 67,000 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-30 01:37:07 |
合計ジャッジ時間 | 4,600 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 12 WA * 22 |
ソースコード
import sequtils,strutils,algorithm type bound = tuple[a : int,b : int,value : int] var N = stdin.readline.parseInt A = newSeqWith(N,newSeq[int](0)) ans : int T : seq[int] unit,unit2 : bound flag = newSeqWith(N,false) Units = newSeq[bound](0) flag2 = true Max_units = Units for n in 0..<N: A[n] = stdin.readline.split.map(parseInt) T = @[] for k in 1..<N: for j in 0..<k: unit = (k,j,-A[k][j]) Units.add(unit) Units = Units.sortedByIt(it.value) for u in Units: if flag[u.a] == false and flag[u.b] == false: flag[u.a] = true flag[u.b] = true Max_units.add((u.a,u.b,-u.value)) while flag2: flag2 = false for i,u in Max_units: for j,u2 in Max_units[0..<i]: if A[u.a][u2.b] + A[u.b][u2.a] > u.value + u2.value and A[u.a][u2.b] + A[u.b][u2.a] > A[u.a][u2.a] + A[u.b][u2.b]: Max_units[i] = (u.a,u2.b,A[u.a][u2.b]) Max_units[j] = (u.b,u2.b,A[u.b][u2.a]) flag2 = true elif A[u.a][u2.a] + A[u.b][u2.b] > u.value + u2.value: Max_units[i] = (u.a,u2.a,A[u.a][u2.a]) Max_units[j] = (u.b,u2.b,A[u.b][u2.b]) flag2 = true ans = 0 for u in Max_units: ans += u.value echo ans