結果
問題 |
No.193 筒の数式
|
ユーザー |
![]() |
提出日時 | 2017-02-20 15:03:24 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 927 bytes |
コンパイル時間 | 11,990 ms |
コンパイル使用メモリ | 233,776 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-30 06:18:00 |
合計ジャッジ時間 | 12,841 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 |
ソースコード
package main import ( "fmt" "io" "os" ) func calc(t []byte) int { sign, temp, sum := 1, 0, 0 for i := 0; i < len(t); i++ { if t[i] == '-' { sum += sign * temp temp = 0 sign = -1 continue } if t[i] == '+' { sum += sign * temp temp = 0 sign = 1 continue } temp = temp * 10 temp += int(t[i] - '0') } sum += sign * temp return sum } func solve(in io.Reader, out, err io.Writer) { var origin []byte fmt.Fscan(in, &origin) var temp []byte max := -9999999999 for i := 1; i < len(origin); i++ { if origin[i-1] == '-' || origin[i-1] == '+' { continue } if origin[i] == '-' || origin[i] == '+' { continue } temp = append(origin[i:], origin[:i]...) result := calc(temp) if max < result { max = result } } result := calc(origin) if max < result { max = result } fmt.Fprintf(out, "%d", max) } func main() { solve(os.Stdin, os.Stdout, os.Stderr) }