玄n关!!!
  • 板块灌水区
  • 楼主jingrongze
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/5/12 19:33
  • 上次更新2024/5/12 20:22:04
查看原帖
玄n关!!!
711461
jingrongze楼主2024/5/12 19:33

题目:

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;
}
2024/5/12 19:33
加载中...