题目:
ss站在一个数组的第一个位置,她会进行以下移动方式: 左指令:如果ss在第一个元素,则不动;否则向左移动一步。 右指令:如果ss在最后一个元素,则不动;否则向右移动一步。 每当ss执行了移动指令后(无论其位置是否移动),都会获得当前元素的分数。现在小红执行一个给定的指令集,请问她最终获得了多少分
输出描述:
一个整数,代表小红最终获得的分数。由于答案可能过大,请对10^9+7 取模。
输入: 5 1 2 3 4 5 RRRL
输出 12
ss最终指令的操作为:"RRRL",因此答案是2+3+4+3=12
改代码!!
#include <bits/stdc++.h>
using namespace std;
const int N =1e8+5;
const int mod =1e9+7;
string s;
int a[N];
int main()
{
long long int n;
cin>>n;
for(int i=0; i<n; i++)
{
cin>>a[i];
}
cin>>s;
int sum=0;
for(int i=0; i<n; i++)
{
if((i==0 && s[i]=='L') || (i==n-1 && s[i]=='R'))
{
continue;
}
else
{
if(s[i]=='R')
{
sum+=a[i+1];
}
if(s[i]=='L')
{
sum+=a[i-1];
}
}
cout<<sum<<endl;
}
cout<<sum%mod;
return 0;
}