80ptsTLE求助
查看原帖
80ptsTLE求助
779534
xhx2011楼主2024/10/12 21:57
#include <bits/stdc++.h>
using namespace std;
#define ll long long
struct node{
	int l , r , num;
};
int n , t;
queue<node> q;
int main(){
	scanf("%d" , &n);
    int flag = 2;
	for(int i = 1; i <= n; i++){
		scanf("%d" , &t);
		if(t != flag){
			q.push(node{i , i , t});
			flag = t;
		} else {
		    q.back().r = i; 
		}
	}
	while(!q.empty()){
		int k = q.size();
		int flag = 2;
		for(int i = 1; i <= k; i++){
			if(q.front().num != flag){
				printf("%d " , 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");
	}
	return 0;
} 
2024/10/12 21:57
加载中...