結果
問題 | No.193 筒の数式 |
ユーザー | spacia |
提出日時 | 2016-01-09 11:30:24 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 90 ms / 1,000 ms |
コード長 | 1,135 bytes |
コンパイル時間 | 3,093 ms |
コンパイル使用メモリ | 77,864 KB |
実行使用メモリ | 40,448 KB |
最終ジャッジ日時 | 2024-09-19 13:15:10 |
合計ジャッジ時間 | 4,398 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 |
ソースコード
import java.io.*; import java.util.*; class Main { public static void out (Object o) { System.out.println(o); } public static int calc (String s) { //out("calc:" + s); int ret = 0 , work = 0 , i = 0 , len = s.length(); boolean addFlg = true; while (i < len) { while (i < len && s.charAt(i) != '+' && s.charAt(i) != '-') work = work * 10 + (s.charAt(i++) - '0'); ret = addFlg ? ret + work : ret - work; //out("ret : " + ret + "\ti : " + i); work = 0; if (i < len) addFlg = s.charAt(i++) == '+'; } return ret; } public static int solve (String s) { int ret = Integer.MIN_VALUE; int len = s.length(); for (int i = 0; i < len; i++) { String t = ""; for (int j = 0; j < len; j++) { t += s.charAt((i + j) % len) + ""; } if (!(t.charAt(0) + "").matches("[0-9]") || !(t.charAt(len - 1) + "").matches("[0-9]")) { continue; } ret = Math.max(ret , calc(t)); } return ret; } public static void main (String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); out(solve(br.readLine())); } }