01 Unbalanced

AtCoder
IDagc045_b
Time2000ms
Memory256MB
Difficulty
Given is a string $S$, where each character is `0`, `1`, or `?`. Consider making a string $S'$ by replacing each occurrence of `?` with `0` or `1` (we can choose the character for each `?` independently). Let us define the unbalancedness of $S'$ as follows: * (The unbalancedness of $S'$) $= \max {$ The absolute difference between the number of occurrences of `0` and `1` between the $l$\-th and $r$\-th character of $S$ (inclusive) $:\ 1 \leq l \leq r \leq |S|}$ Find the minimum possible unbalancedness of $S'$. ## Constraints * $1 \leq |S| \leq 10^6$ * Each character of $S$ is `0`, `1`, or `?`. ## Input Input is given from Standard Input in the following format: $S$ [samples]
Samples
Input #1
0??
Output #1
1

We can make $S'=$ `010` and achieve the minimum possible unbalancedness of $1$.
Input #2
0??0
Output #2
2
Input #3
??00????0??0????0?0??00??1???11?1?1???1?11?111???1
Output #3
4
API Response (JSON)
{
  "problem": {
    "name": "01 Unbalanced",
    "description": {
      "content": "Given is a string $S$, where each character is `0`, `1`, or `?`. Consider making a string $S'$ by replacing each occurrence of `?` with `0` or `1` (we can choose the character for each `?` independent",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "agc045_b"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Given is a string $S$, where each character is `0`, `1`, or `?`.\nConsider making a string $S'$ by replacing each occurrence of `?` with `0` or `1` (we can choose the character for each `?` independent...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments