70分(TLE 后三个点)
查看原帖
70分(TLE 后三个点)
1629145
wilsonkang楼主2025/6/28 15:48
#include<bits/stdc++.h>
using namespace std;
struct node{
	int id,str;
};
vector<int> ans;
vector<node> a;
int read(){
	int x=0;
	char c=getchar();
	while(c>='0'&&c<='9'){
		x=x*10+(c^48);
		c=getchar();
	}
	return x;
}
void write(int x){
	if(x>9) write(x/10);
	putchar(x%10+'0');
}
int main(){
	int n=read();
	for(int i=1;i<=n;i++){
		int x=read();
		a.push_back({i,x});
	}
	while(!a.empty()){
		int now_str=2,mini=0;
		for(int i=0;i<a.size();i++){
			if(a[i].str!=now_str&&a[i].id>mini){
				ans.push_back(a[i].id);
				now_str=a[i].str;
				mini=a[i].id;
				a.erase(a.begin()+i);
				i--;
				continue;
			}
		}
		for(int i=0;i<ans.size();i++){
			write(ans[i]),putchar(' ');
			ans.erase(ans.begin());
			i--;
		}
		putchar('\n');
	}
	return 0;
}
2025/6/28 15:48
加载中...