Educational Codeforces Round 90 (Rated for Div. 2)-C. Pluses and Minuses

题目链接

题意:

有一个只含±号的字符串会经过如下处理得到一个值,请你写出一个程序满足如下条件并输出正确的res。

res = 0
for init = 0 to inf
    cur = init
    ok = true
    for i = 1 to |s|
        res = res + 1
        if s[i] == '+'
            cur = cur + 1
        else
            cur = cur - 1
        if cur < 0
            ok = false
            break
    if ok
        break

思路:

考验的是读代码的能力,仔细阅读上面代码并用c++写出来即可。

代码:

#include
using namespace std;
#define int long long
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
const int N=2e5+5;
const int mod=998244353;
const int inf=0x7fffffff;
const double pi=3.1415926535;
using namespace std;
signed main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        int sum=0,max=0,num=0;
        string s;
        cin>>s;
        for(int i=0;i<s.size();i++)
        {
            if(s[i]=='-')
            {
                sum++;
            }
            else
            {
                sum--;
            }
            if(sum>max)
            {
                max=sum;
                num+=(i+1);
            }
        }
        cout<<num+s.size()<<endl;
    }
    return 0;
}

你可能感兴趣的:(思维)