結果
| 問題 |
No.297 カードの数式
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 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 |
ソースコード
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)