[白俊]1541号紛失括弧


問題とI/O



質問へのアクセス


この問題の論理は重要であり,入力形式では適切な位置のカッコで最適値を求める.
減算値を最大値にすると、最大値を求めることができます.
もう一度考えてみると、マイナス記号を除いて、すべての加算を先にして、それからマイナス記号でいいです.
これが実現すれば、入力した文字列を減算基準で分割し、加算演算を先に行い、減算を実行する最値を持つ整数を得るだけでよい.

後で引き算をすると、最高価格がもらえます.

コード実装

import java.io.*;
import java.util.*;

public class Main {

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    String[] arr = br.readLine().split("-");
    int sum = Integer.MAX_VALUE;

    for(String i : arr) {
      String[] arr2 = i.split("\\+");

      int temp = 0;
      for(String j : arr2) {
        temp += Integer.parseInt(j);
      }

      if(sum == Integer.MAX_VALUE) sum = temp;
      else sum -= temp;
    }

    System.out.println(sum);
  }
}