有一些奇怪的问题
查看原帖
有一些奇怪的问题
957610
dinghansun楼主2024/7/30 11:42

看看

#include<bits/stdc++.h>
using namespace std;
const int N=2*1e5+1;
int n,k,x;
int a[N][3];
int main()
{
	scanf("%d",&n);
	int num=1;
	for(int i=1;i<=n;i++){
		scanf("%d",&k);
		if(i==1){
			a[num][1]++;
			a[num][2]=i;
		}
		else{
			if(k==x) a[num][1]++;
			else{
				a[++num][1]++;
				a[num][2]=i;
			}
		}
		x=k;
	}
	k=num;
	while(k>0){
		for(int i=1;i<=num;i++){
			if(a[i][1]==0){
				a[i][1]=-1;
				k--;
				for(int j=i+1;j<=num;j++){
					if(a[j][1]>=1) a[j][2]=a[x][2];
				}
				continue;
			}
			else if(a[i][1]==-1) continue;
			x=i;
			printf("%d ",a[i][2]);
			a[i][1]--;
			a[i][2]++;
//			printf("%d %d\n",a[i][1],a[i][2]);
		}
		printf("\n");
	}
	return 0;
}

2024/7/30 11:42
加载中...