求助,全爆零
查看原帖
求助,全爆零
631713
Amano_Hina楼主2022/3/25 19:08

蒟蒻只想拿前30分的部分分,请各位dalao不要说我的做法

#include <bits/stdc++.h>
#include <stdio.h>
using namespace std;
long long int gcd(long long int a,long long int b)
{
	 return b ? gcd(b,a%b) : a;
}
int main()
{
//	freopen("C:\\Users\\Admin\\Downloads\\out\\in.txt","r",stdin);
//	freopen("C:\\Users\\Admin\\Downloads\\out\\out.txt","w",stdout);
	int n;
	cin>>n;
	int m;
	cin>>m;
	int a[n+5];
	int sum[n+5];
	sum[0]=0;
	for(int i=1;i<=n;i++)
	{
		char kind;
		cin>>kind;
		if(kind=='(')
		{
			a[i]=-1;
		}else{
			a[i]=1;
		}
	}
	for(int i=1;i<=n;i++)
	{
		sum[i]=sum[i-1]+a[i];
	//	cout<<sum[i]<<endl;
	}
	cout<<endl;
	for(int i=1;i<=m;i++)
	{
		char b[11];
		cin>>b+1;
		if(b[1]=='R')
		{
			int l,r;
			cin>>l>>r;
			char kind;
			cin>>kind;
			if(kind=='(')
			{
				for(int i=l;i<=r;i++)
				{
					a[i]=-1;
				}
			}else{
				for(int i=l;i<=r;i++)
				{
					a[i]=1;
				}
			}
		}
		if(b[1]=='S')
		{
			int l,r;
			cin>>l>>r;
			for(int i=0;i<=(r-l)/2-1;i++)
			{
				swap(a[l-i],a[r-i]);
			}
		}
		if(b[1]=='I')
		{
			int l,r;
			cin>>l>>r;
			for(int i=l;i<=r;i++)
			{
				if(a[i]==-1)
				{
					a[i]=1;
				}else{
					a[i]=-1;
				}
			}
		}
		if(b[1]=='Q')
		{
			int l,r;
			cin>>l>>r;
			cout<<abs(sum[r]-sum[l-1])/2<<endl;
		}
	}
	return 0;
}

2022/3/25 19:08
加载中...