結果
| 問題 |
No.297 カードの数式
|
| コンテスト | |
| ユーザー |
maspy
|
| 提出日時 | 2020-02-26 23:44:50 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 27 ms / 1,000 ms |
| コード長 | 878 bytes |
| コンパイル時間 | 75 ms |
| コンパイル使用メモリ | 12,416 KB |
| 実行使用メモリ | 10,624 KB |
| 最終ジャッジ日時 | 2024-10-13 15:37:09 |
| 合計ジャッジ時間 | 1,499 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 23 |
ソースコード
#!/usr/bin/env python3
# %%
import sys
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
# %%
N = int(readline())
nums = []
plus = 1
minus = 0
for x in readline().decode().split():
if x == '+':
plus += 1
elif x == '-':
minus += 1
else:
nums.append(int(x))
nums.sort()
# %%
def get_largest(nums, plus, minus):
ret = -sum(nums[:minus])
ret += sum(nums[minus:minus + plus])
for i, x in enumerate(nums[minus + plus:], 1):
ret += x * 10 ** i
return ret
# %%
def get_smallest(nums, plus, minus):
if minus:
return - get_largest(nums, minus, plus)
ret = 0
for i, x in enumerate(reversed(nums)):
digit = i // plus
ret += 10 ** digit * x
return ret
# %%
print(get_largest(nums, plus, minus), get_smallest(nums, plus, minus))
maspy