求助subtrack1第一个点RE
查看原帖
求助subtrack1第一个点RE
319512
章鱼姐楼主2024/10/3 21:47
#include<bits/stdc++.h>
using namespace std;
int T,u;
bool vis[3000005];
vector<int> a,b,c,h;
string s;
int main()
{
	cin>>T;
	while(T--)
	{
		memset(vis,false,sizeof(vis));
		a.clear();
		b.clear();
		c.clear();
		h.clear();
		cin>>s;
		u=s.size();
		int k=0;
		while(1)
		{
			if(s[k]=='A')
			{
				break;
			}
			k++;
		}
		for(int i=k;i<u;i++)
		{
			if(s[i]=='A') a.push_back(i);
			if(s[i]=='P') b.push_back(i);
			if(s[i]=='C') c.push_back(i);
		}
		int a1=0,b1=0,c1=0,ans=0;
		while(1)
		{
			if(a1==a.size()) break;
			if(c1==c.size()) break;
			if(b1==b.size()) break;
			if(a[a1]<b[b1])
			{
				if(b[b1]<c[c1])
				{
					h.push_back(a[a1]+1);
					h.push_back(b[b1]+1);
					h.push_back(c[c1]+1);
					vis[a[a1]]=vis[b[b1]]=vis[c[c1]]=true;
					ans++;
					a1++;
					b1++;
					c1++;
				}
				else
				{
					c1++;
					continue;
				}
			}
			else
			{
				b1++;
				continue;
			}
		}
		bool p=false;
		for(int i=0;i<u;i++)
		{
			if(!vis[i])
			{
				p=true;
				cout<<s[i];
			}
		}
		if(p==false)
		{
			cout<<"Perfect";
		}
		cout<<endl;
		cout<<ans<<endl;
		for(int i=0;i<ans;i++)
		{
			cout<<h[i*3]<<" "<<h[i*3+1]<<" "<<h[i*3+2]<<endl;
		}
	}
	return 0;
}
2024/10/3 21:47
加载中...