結果

問題 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
権限があれば一括ダウンロードができます

ソースコード

diff #

#!/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))
0