はまやんはまやんはまやん

hamayanhamayan's blog

MaximumRange [SRM 715 Div1 Easy]

問題概要

"+"と"-"から成る文字列がある。
"+"は数をインクリメントする命令で、-は数をデクリメントする命令。
ここから、連続でなくてもよい部分文字列をとって、X=0に対して実行する時、Xの範囲(=Xの最大-Xの最小)を最大化せよ

解説

"+"と"-"の数を数えて大きい方を答えるだけ。
範囲を最大化したいなら、ひたすら小さくするか、ひたすら大きくするかだけ

struct MaximumRange {
    int findMax(string s) {
        map<char, int> cnt;
        for (char c : s) cnt[c]++;

        return max(cnt['+'], cnt['-']);
    }
};