結果
| 問題 | No.3363 Two Closest Numbers |
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2026-01-30 04:21:59 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,490 bytes |
| 記録 | |
| コンパイル時間 | 288 ms |
| コンパイル使用メモリ | 82,340 KB |
| 実行使用メモリ | 105,476 KB |
| 最終ジャッジ日時 | 2026-01-30 04:22:09 |
| 合計ジャッジ時間 | 9,834 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 30 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()
#print(E)
score=0
keta=0
ix=len(E)//2-1
jx=len(E)//2
while ix>=0:
score+=E[ix]*pow(10,keta,mod)
score-=E[jx]*pow(10,keta,mod)
ix-=1
jx+=1
keta+=1
#print(E,score)
score+=(D[i+1]-D[i])*pow(10,keta,mod)
#print(score)
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=len(D)//2-1
j=len(D)//2
while i>=0:
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