大佬看这里->->->
查看原帖
大佬看这里->->->
284762
哈利田波特楼主2021/11/14 21:01

代码:

#include<iostream>
#include<queue>
#include<map>

using namespace std;

struct node{
	int L,R,NUM;
};

queue < node > Q;

int t,n;

int main(){
	scanf("%d",&n);
	//cin>>n;
	int flag=2;
	for(int i=1;i<=n;i++){
		scanf("%d",&t);
		//cin>>t;
		if(t!=flag){
			Q.push(node{i,i,t});
			flag=t;
		}else{
			Q.back().R=i;
		}
	}
	
	while(!Q.empty()){
		int kkk=Q.size();
		flag=2;
		for(int i=1;i<=kkk;i++){
			if(Q.front().NUM!=flag){
				printf("%d ",Q.front().L);
				//cout<<Q.front().L<<' ';
				Q.front().L++;
				flag=Q.front().NUM;
			}
			if(Q.front().L<=Q.front().R){
				Q.push(Q.front());
			}
			Q.pop();
		}
		printf("\n");
		//cout<<endl;
	}
	return 0;
}

#8#8TLE

2021/11/14 21:01
加载中...