ABC T3 Subtask 疑似出bug
  • 板块学术版
  • 楼主BGM114514
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/10/1 21:08
  • 上次更新2024/10/2 08:55:31
查看原帖
ABC T3 Subtask 疑似出bug
705058
BGM114514楼主2024/10/1 21:08

代码思路完全正确,只不过删除顺序不同。

#include<bits/stdc++.h>
#define int long long
using namespace std;
struct P{
	int id1,id2;
};
struct C{
	int id1,id2,id3;
};
void solve(){
	string s;
	cin>>s;
	vector<int> a;
	vector<P> p;
	vector<C> c;
	for(int i=0;i<s.size();i++){
		if(s[i]=='A')a.push_back(i);
		if(s[i]=='P'&&a.size()){
			p.push_back({a[a.size()-1],i});
			a.pop_back();
		}
		if(s[i]=='C'&&p.size()){
			c.push_back({p[p.size()-1].id1,p[p.size()-1].id2,i});
			p.pop_back();
		}
	}
	bitset<3000005> no;
	for(C i:c){
		no[i.id1]=1,no[i.id2]=1,no[i.id3]=1;
	}
	bool ll=0;
	for(int i=0;i<s.size();i++){
		if(!no[i])putchar(s[i]),ll=1;
	}
	if(!ll)cout<<"Perfect";
	cout<<endl<<c.size()<<endl;
	for(C i:c){
		cout<<i.id1+1<<" "<<i.id2+1<<" "<<i.id3+1<<endl;
	}
}
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	int t;
	cin>>t;
	while(t--)solve();
	return 0;
}
2024/10/1 21:08
加载中...