0分,样例是对的,求大佬帮助!
查看原帖
0分,样例是对的,求大佬帮助!
1112350
hzy_Q楼主2024/12/4 20:04
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int a[N];
char s[N];
int dp[N];
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	int m;
	cin>>m;
	cin>>s;
	int op=0;
	int cnt=0; 
	bool f=0;
	for(int i=0;i<m;i++)
	{
		if(!op&&s[i]=='a') op++;
		else if(op==3&&s[i]=='a') op=1,cnt++,f=1;
		else if(op==1&&s[i]=='b') op++;
		else if(op==2&&s[i]=='c')
		{ 
			if(f) op++,f=0;
			else cnt++,op++;
		}
		else op=0,cnt=0,f=0;
		for(int j=1;j<=cnt;j++)
		{
			if(op<3)
			{
				if(i==0)
				{
					dp[i]=0;
					break;
				}
				else
				{
					dp[i]=dp[i-1];
					break;
				}
			}
			dp[i]=max(dp[i],dp[i-1]+a[j]);
		}
	}
	int maxx=-1e9;
	for(int i=0;i<m;i++) maxx=max(maxx,dp[i]);
	cout<<maxx;
	return 0;
}

help!AC会关

2024/12/4 20:04
加载中...