結果
| 問題 | No.3363 Two Closest Numbers |
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2026-01-30 04:13:22 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,409 bytes |
| 記録 | |
| コンパイル時間 | 289 ms |
| コンパイル使用メモリ | 82,780 KB |
| 実行使用メモリ | 105,436 KB |
| 最終ジャッジ日時 | 2026-01-30 04:13:35 |
| 合計ジャッジ時間 | 12,013 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 14 WA * 16 TLE * 2 -- * 27 |
ソースコード
import sys
input = sys.stdin.readline
from collections import Counter
def calc(D):
if len(D)==0:
return 0
ANS=1<<60
for i in range(len(D)-1):
x=D[i]
y=D[i+1]
if x==y:
E=D[:i]+D[i+2:]
ANS=min(ANS,calc(E))
else:
E=D[:i]+D[i+2:]
E.sort()
score=0
keta=0
i=0
j=len(E)-1
while i<j:
score+=E[i]*pow(10,keta,mod)
score-=E[j]*pow(10,keta,mod)
i+=1
j-=1
keta+=1
#print(E,score)
score+=(D[i+1]-D[i])*pow(10,keta,mod)
ANS=min(ANS,score)
return ANS
mod=998244353
N=int(input())
C=list(map(int,input().split()))
C.sort()
SET=set()
ANS=1<<60
if N%2==1:
D=C[1:]
score=0
keta=0
i=0
j=len(D)-1
while i<j:
score+=D[i]*pow(10,keta,mod)
score-=D[j]*pow(10,keta,mod)
i+=1
j-=1
keta+=1
score+=C[0]*pow(10,keta,mod)
print(score%mod)
else:
C=Counter(C)
for i in range(1,10):
if C[i]>=2 and C[i]%2==0:
C[i]=2
elif C[i]>=3 and C[i]%2==1:
C[i]=3
D=[]
for c in C:
for j in range(C[c]):
D.append(c)
D.sort()
print(calc(D)%mod)
titia