社区讨论

188行暴力,第一个样例没过但100分

B4126[语言月赛 202501] 古希腊掌管节奏的神参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@miv1fchw
此快照首次捕获于
2025/12/07 09:22
3 个月前
此快照最后确认于
2025/12/09 20:35
3 个月前
查看原帖
CPP
#include<iostream>
using namespace std;
int main()
{
	string str;
	int t,ans=0;
	cin>>str;
	cin>>t;
	int n=str.size();
	bool kuo=1,f=0;
	int a=-1,b=-1,c=-1,d=-1,la=0,lb=0,lc=0,ld=0,ka=0,kb=0,kc=0,kd=0;
	for(int i=0;i<n;i++)
	{
		if(str[i]==')')
		{
			kuo=1;
			f=1;
		}
		if(str[i]=='(')
		{
			kuo=0;
		}
		if(kuo && str[i]!='\'')
		{
			ans++;
		}
		if(t==1 && str[i]!='\'' && str[i]!='(' && str[i]!=')')
		{
			if(f==1)
			{
				if(ka!=0)
				{
					la+=ka;
				}
				else
				{
					if(la>a)
					{
						a=la;
					}
					la=0;
				}
				if(kb!=0)
				{
					lb+=kb;
				}
				else
				{
					if(lb>b)
					{
						b=lb;
					}
					lb=0;
				}
				if(kc!=0)
				{
					lc+=kc;
				}
				else
				{
					if(lc>c)
					{
						c=lc;
					}
					lc=0;
				}
				if(kd!=0)
				{
					ld+=kd;
				}
				else
				{
					if(ld>d)
					{
						d=ld;
					}
					ld=0;
				}
				f=0,ka=0,kb=0,kc=0,kd=0;
			}
			if(kuo==0)
			{
				if(str[i]=='L')
				{
					if(i<n-1 && str[i+1]=='\'')
					{
						kb++;
					}
					else
					{
						ka++;
					}
				}
				if(str[i]=='R')
				{
					if(i<n-1 && str[i+1]=='\'')
					{
						kd++;
					}
					else
					{
						kc++;
					}
				}
			}
			else if(str[i]=='L')
			{
				if(i<n-1 && str[i+1]=='\'')
				{
					lb++;
					if(la>a)
					{
						a=la;
					}
					if(lc>c)
					{
						c=lc;
					}
					if(ld>d)
					{
						d=ld;
					}
					la=0,lc=0,ld=0;
				}
				else
				{
					la++;
					if(lb>b)
					{
						b=lb;
					}
					if(lc>c)
					{
						c=lc;
					}
					if(ld>d)
					{
						d=ld;
					}
					lb=0,lc=0,ld=0;
				}
			}
			else if(str[i]=='R')
			{
				if(i<n-1 && str[i+1]=='\'')
				{
					ld++;
					if(lb>b)
					{
						b=lb;
					}
					if(lc>c)
					{
						c=lc;
					}
					if(la>a)
					{
						a=la;
					}
					lb=0,lc=0,la=0;
				}
				else
				{
					lc++;
					if(lb>b)
					{
						b=lb;
					}
					if(la>a)
					{
						a=la;
					}
					if(ld>d)
					{
						d=ld;
					}
					lb=0,la=0,ld=0;
				}
			}
		}
	}
	cout<<ans<<endl;
	if(t==1)
	{
		cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
	}
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...