求助:TEL 怎么办
查看原帖
求助:TEL 怎么办
1123368
fastor2023楼主2023/10/4 11:53
#include <bits/stdc++.h>
using namespace std;
struct node{
	int fruit;
	int fi;
	int count;
};
	
int main(){
	int del=0;
	int n;
	cin>>n;
vector<node>set;
	int now=-1;
	int fruit;
	int num=0;
	int nn;
	int numberofvector=0;
	for(int i=1;i<=n;i++){
		cin>>fruit;
		if(now==-1){
			now=fruit;
			num++;
			nn=1;
			continue;
		}
		if(now!=fruit){
			set.push_back((node){now,nn,num });
			numberofvector++;
			nn=i;
			num=0;
			num++;
			now=fruit;
			continue;
		}
		num++;
	}
	set.push_back((node){now,nn,num });
	//found a list
	
	
vector<int> l;
/////////////////////////////////////////////////////////////
	while(del!=set.size()){
	for(int i=0;i<set.size();i++){
if(set[i].fruit==-1)
	continue;
if(i==0){
	cout<<set[i].fi<<' ';
	set[i].fi++;
	set[i].count--;
	if(set[i].count==0)
	l.push_back(i);
	continue;
}
	
	if(set[i-1].fruit==set[i].fruit)
	continue;
	if(set[i-1].fruit==-1){
		int cnt=i-1;
		while(set[cnt].fruit==-1&&cnt!=0)
			cnt--;
if(set[cnt].fruit==set[i].fruit)
continue;
	}
cout<<set[i].fi<<' ';
	set[i].fi++;
	set[i].count--;
	if(set[i].count==0)
	l.push_back(i);
	continue;
}
while(l.size()){
	set[l.back()].fruit=-1;
	l.pop_back();
	del++;
}
cout<<endl;
}
}
2023/10/4 11:53
加载中...