結果
| 問題 | 
                            No.193 筒の数式
                             | 
                    
| コンテスト | |
| ユーザー | 
                             kyo1
                         | 
                    
| 提出日時 | 2020-12-08 03:17:06 | 
| 言語 | Python3  (3.13.1 + numpy 2.2.1 + scipy 1.14.1)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 26 ms / 1,000 ms | 
| コード長 | 822 bytes | 
| コンパイル時間 | 80 ms | 
| コンパイル使用メモリ | 12,672 KB | 
| 実行使用メモリ | 10,880 KB | 
| 最終ジャッジ日時 | 2024-09-17 14:19:16 | 
| 合計ジャッジ時間 | 1,329 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge6 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 16 | 
ソースコード
S = input()
def check(s):
    if s[0] in "+-":
        return False
    if s[-1] in "+-":
        return False
    for i in range(len(s) - 1):
        if s[i] in "-+" and s[i + 1] in "-+":
            return False
    return True
res = -float("inf")
for i in range(len(S)):
    T = S[i:] + S[:i]
    if not check(T):
        continue
    t = []
    i = 0
    r = 0
    while i < len(T) and T[i].isdigit():
        r *= 10
        r += int(T[i])
        i += 1
    t.append(r)
    while i < len(T):
        if T[i] == "+":
            o = 1
        else:
            o = -1
        i += 1
        r = 0
        while i < len(T) and T[i].isdigit():
            r *= 10
            r += int(T[i])
            i += 1
        r = t[-1] + o * r
        t.pop(-1)
        t.append(r)
    res = max(res, t[0])
print(res)
            
            
            
        
            
kyo1