样例3过不了求调
查看原帖
样例3过不了求调
901929
CYS66楼主2024/10/7 20:51
//https://www.luogu.com.cn/problem/P7912
#include<bits/stdc++.h>
using namespace std;
int n,fruit[200005],sum;
struct same_fruit{
	int sf_sum,num,l,r;
}a[200005];
int main(){
//	freopen("fruit3.in","r",stdin);
	cin>>n;
	for(int i=1;i<=n;i++){
		scanf("%d",&fruit[i]);
		if(fruit[i]!=fruit[i-1] || i==1){
			a[sum].r=a[sum-1].r+a[sum].sf_sum;
			a[++sum].l=i;
			a[sum].num=fruit[i];
		}
		a[sum].sf_sum++;
	}
	a[sum].r=a[sum-1].r+a[sum].sf_sum;
	while(n!=0){
		int last=0;
		for(int i=1;i<=sum;i++){
			if(a[i].num!=last && a[i].sf_sum!=0 || last==0 && a[i].sf_sum!=0){
				cout<<a[i].r-a[i].sf_sum+1<<" ";
				last=a[i].num;
				a[i].sf_sum--;
				n--;
			}
		}
		cout<<endl;
	}
	return 0;
}
2024/10/7 20:51
加载中...