結果
| 問題 |
No.3363 Two Closest Numbers
|
| コンテスト | |
| ユーザー |
detteiuu
|
| 提出日時 | 2025-11-17 22:13:44 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 109 ms / 2,000 ms |
| コード長 | 1,101 bytes |
| コンパイル時間 | 406 ms |
| コンパイル使用メモリ | 82,836 KB |
| 実行使用メモリ | 107,412 KB |
| 最終ジャッジ日時 | 2025-11-17 22:13:56 |
| 合計ジャッジ時間 | 6,967 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 59 |
ソースコード
MOD = 998244353
N = int(input())
C = sorted(list(map(int, input().split())))
cnt = [0]*10
for c in C:
cnt[c] += 1
def mod_sum(A):
ans = 0
for a in A:
ans = (ans*10+a)%MOD
return ans
if N%2 == 1:
idx = 1
c = 0
X = mod_sum(C[:N//2+N%2])
Y = mod_sum(C[N//2+N%2:][::-1])
exit(print((X-Y)%MOD))
if all(c%2 == 0 for c in cnt):
exit(print(0))
def func(a, b):
C = B[:]
C[a] -= 1
C[b] -= 1
X = a
Y = b
D = []
for i in range(1, 10):
for _ in range(C[i]):
D.append(i)
L, R = D[:len(D)//2], D[len(D)//2:][::-1]
for l in L:
X = X*10+l
for r in R:
Y = Y*10+r
return X-Y
ans = 1<<60
for i in range(10):
B = []
for j in range(10):
if i == j:
if 2 <= cnt[j]:
B.append(cnt[j]%2+2)
else:
B.append(cnt[j]%2)
else:
B.append(cnt[j]%2)
for j in range(1, 9):
for k in range(j+1, 10):
if 1 <= B[j] and 1 <= B[k]:
ans = min(ans, func(k, j))
print(ans%MOD)
detteiuu