結果

問題 No.297 カードの数式
ユーザー lloyzlloyz
提出日時 2023-05-22 00:08:23
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 32 ms / 1,000 ms
コード長 898 bytes
コンパイル時間 99 ms
コンパイル使用メモリ 12,544 KB
実行使用メモリ 10,880 KB
最終ジャッジ日時 2024-12-21 20:18:06
合計ジャッジ時間 2,098 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 23
権限があれば一括ダウンロードができます

ソースコード

diff #

n = int(input())
C = list(input().split())

L = []
plus, minus = 0, 0
for i in range(n):
    if C[i].isdigit():
        L.append(C[i])
    elif C[i] == '+':
        plus += 1
    else:
        minus += 1
l = len(L)
m = plus + minus
L.sort(reverse=True)
D = []
for i in range(m + 1):
    if i == 0:
        D.append(int(''.join(L[:-m])))
    else:
        D.append(int(L[-m + i - 1]))
ans1 = D[0]
for i in range(m):
    if plus > 0:
        ans1 += D[i + 1]
        plus -= 1
    else:
        ans1 -= D[i + 1]
if minus > 0:
    ans2 = D[m] - D[0]
    minus -= 1
    for i in range(m - 1):
        if minus > 0:
            ans2 -= D[i + 1]
            minus -= 1
        else:
            ans2 += D[i + 1]
else:
    L.sort()
    D = ['' for _ in range(m + 1)]
    for i in range(l):
        D[i % (m + 1)] += L[i]
    ans2 = 0
    for i in range(m + 1):
        ans2 += int(D[i])
print(ans1, ans2)
0