結果
| 問題 |
No.519 アイドルユニット
|
| コンテスト | |
| ユーザー |
6soukiti29
|
| 提出日時 | 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
6soukiti29