为啥没A啊,蒟蒻求调
查看原帖
为啥没A啊,蒟蒻求调
1376172
w150432楼主2025/1/24 23:32

54 pts 求调

#include <bits/stdc++.h>

#define int long long

using namespace std;

const int N = 2e5 + 10;

int n, m;
vector <int> pos;
int ans;
int c[N];
char s[N];

signed main()
{
    scanf("%d%d%s", &n, &m, s);

    for (int i = 0 ; i < n ; i ++ )
    {
        scanf("%d", &c[i]);
        ans += c[i];
    }

    for (int i = 0 ; i < n ; i ++ )
        if (s[(i - 1 + n) % n] == 'R' && s[(i + 1 + n) % n] == 'L')
            pos.push_back(i);

    int len = pos.size();
    for (int i = 0 ; i < len ; i ++ )
    {
        int tmp = 0, idx = pos[i];
        if (s[idx] == 'R')
        {
            while (s[(idx - 1 + n) % n] == 'R')
            {
                idx = (idx - 1 + n) % n;
                tmp += c[idx];
            }
            ans -= min(tmp, m);
        }
        else
        {
            while (s[(idx + 1 + n) % n] == 'L')
            {
                idx = (idx + 1 + n) % n;
                tmp += c[idx];
            }
            ans -= min(tmp, m);
        }
    }

    printf("%d", ans);

    return 0;
}
2025/1/24 23:32
加载中...