求助ABC T3
  • 板块学术版
  • 楼主fenglaiguo
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/10/1 23:54
  • 上次更新2024/10/2 10:40:34
查看原帖
求助ABC T3
775951
fenglaiguo楼主2024/10/1 23:54
#include<bits/stdc++.h>
using namespace std;
int n,ans;
bool flag[300010];
int as[300010],ps[300010],cs[300010];
string s;
int main() {
	scanf("%d",&n);
	while(n--)
	{
		string s1;
		int a=0,p=0,c=0;
		int k=0,k1=0;
		cin>>s1;
		memset(as,0,sizeof(as));
		memset(ps,0,sizeof(ps));
		memset(cs,0,sizeof(cs));
		memset(flag,0,sizeof(flag));
		for(int i=0;i<s1.length();i++)
		{
			if(s1[i]=='A' && !a && flag[i]==0)
			{
				a=1;
				as[k]=i;
//				printf("sb%d",i);
			}
			else if(s1[i]=='A' && a && flag[i]==0 && k1==0)
			{
				k1=i;
//				printf("sb%d",k1);
			}
			else if(s1[i]=='P' && a && !p && flag[i]==0)
			{
				p=1;
				ps[k]=i;
			}
			else if(s1[i]=='C' && p && a && flag[i]==0)
			{
				a=0,p=0;
				cs[k]=i;
				flag[as[k]]=1;
				flag[ps[k]]=1;
				flag[cs[k]]=1;
				k++;
				if(k1)
				{
					i=k1-1;
					k1=0;
				}
			}
		}
		if(k*3==s1.length()) printf("Perfect");
		else for(int i=0;i<s1.length();i++)
		{
			if(!flag[i])
			{
				printf("%c",s1[i]);
			}
		}
		printf("\n%d\n",k);
		for(int i=0;i<k;i++)
		{
			printf("%d %d %d\n",as[i]+1,ps[i]+1,cs[i]+1);
		}
	}
}
2024/10/1 23:54
加载中...