70分t掉,不知道怎么优化,求调
查看原帖
70分t掉,不知道怎么优化,求调
366639
hh弟中弟楼主2022/10/9 12:53

如题

#include<bits/stdc++.h>
using namespace std;
int s[200086],n,w=1;//.size   .pop  .push_back
bool pd(){
	int i;
	for(i=2;i<=n;i++){
		if(s[i-1]!=s[i]&&s[i]-1!=2&&s[i]-1!=2){
			break;
		}
	}
	if(i==n+1){
		for(int j=1;j<=n;j++){
			if(s[j]!=2)cout<<j<<' ';
		}
		cout<<endl;
		return 0;
	}
	return 1;
}
void hs(){
	int f;
	for(int f=1;f<=n;f++)
	  if(s[f]!=2){
	  	w=s[f];s[f]=2;cout<<f<<' ';break;
	  }
	for(int i=f+1;i<=n;i++){
		if(s[i]!=2&&s[i]!=w){
			cout<<i<<' ';w=s[i];s[i]=2;
		}
	}cout<<endl;
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++)scanf("%d",&s[i]);
	while(1){
		if(pd())hs();
		else return 0;
		//for(int i=1;i<=n;i++)cout<<s[i]<<' ';cout<<endl;
		
	}
}
2022/10/9 12:53
加载中...