結果
問題 | 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)