46分求助
查看原帖
46分求助
726902
bcbgszyzh楼主2024/4/9 20:48
//credit: bcbgszyzh
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[200010],b[200010];char s[200010];
int n,m;
int L(int x){
	if(x==1)return n;
	else  return x-1;
}
int R(int x){
	if(x==n)return 1;
	else return x+1;
}
signed main(){
	scanf("%lld%lld",&n,&m);
	cin>>s+1;
	int ans=0;
	for(int i=1;i<=n;++i){
		scanf("%lld",&a[i]);
		ans+=a[i]; 
		b[i]=a[i];
	} 
	for(int i=1;i<=n;++i){
		if(s[i]=='L'){
			b[i]-=1;
			b[L(i)]++;
		}else{
			b[i]-=1;
			b[R(i)]++;
		}
	}
	for(int i=1;i<=n;++i){
		if(b[i]>a[i]){	
			ans-=min(m,a[i]);
		}
	}
	printf("%lld",ans);
	return 0;
}
2024/4/9 20:48
加载中...