結果
問題 | No.193 筒の数式 |
ユーザー | ki_ki33 |
提出日時 | 2015-04-26 22:55:38 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 138 ms / 1,000 ms |
コード長 | 1,477 bytes |
コンパイル時間 | 2,773 ms |
コンパイル使用メモリ | 89,976 KB |
実行使用メモリ | 54,316 KB |
最終ジャッジ日時 | 2024-07-05 03:14:46 |
合計ジャッジ時間 | 5,574 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 |
ソースコード
import java.awt.Point; import java.awt.Rectangle; import java.awt.geom.Rectangle2D; import java.io.BufferedInputStream; import java.io.IOException; import java.math.BigDecimal; import java.math.BigInteger; import java.util.*; import java.util.Map.Entry; import java.util.concurrent.ConcurrentSkipListSet; public class Main { public static final int C = 1000000007; static final int CY = 1000000000; public void calc() { StringBuilder sb = new StringBuilder(); BufferedInputStream bs = new BufferedInputStream(System.in); Scanner sc = new Scanner(bs); String s = sc.next(); int ans = Integer.MIN_VALUE; //double ans = 0.0; for (int i=0; i < s.length(); i++) { String ns = ""; ns += s.substring(i); ns += s.substring(0, i); //System.out.println(ns); ans = Math.max(ans, msd(ns)); } System.out.println(ans); } int msd(String s) { if (s.endsWith("+") || s.endsWith("-") || s.startsWith("+") || s.startsWith("-")) { return Integer.MIN_VALUE; } int ret = 0; String[] ss = s.split("\\+"); for (String str: ss) { //System.out.println(str); int num = 0; String[] sst = str.split("-"); for (int i=0; i < sst.length;i++) { //System.out.println(sst[i]); if (i==0) { num += Integer.parseInt(sst[i]); }else { num -= Integer.parseInt(sst[i]); } } ret += num; } return ret; } public static void main(String[] args) { Main main = new Main(); main.calc(); } }