谁能告诉我哪错了
查看原帖
谁能告诉我哪错了
1462207
dacongming123楼主2024/10/2 11:41
#include<bits/stdc++.h>
using namespace std;
struct node
{
	int b,f;
}a[200005];
int n;
node tmp[200005];
bool vis[200005]={0};
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].b;
		a[i].f=i;
	}
	a[0].b=-1;
	int cnt=1;
	while(cnt!=0){
		for(int i=1;i<=n;i++)
		{
			tmp[i].b=-1;
		}
		for(int i=1;i<=n;i++)
		{
			cout<<a[i].b<<" ";
		}
		cout<<endl;
		for(int i=1;i<=n;i++){
			if(a[i].b!=a[i-1].b)cout<<a[i].f<<" ",vis[a[i].f]=1;
		}
		cnt=0;
		for(int i=1;i<=n;i++){
			if(vis[a[i].f]==0) tmp[++cnt].b=a[i].b,tmp[++cnt].f=a[i].f;
		}
		n=cnt;
		for(int i=1;i<=n;i++){
			a[i].b=tmp[i].b;
			a[i].f=tmp[i].f;
		}
		cout<<endl;
	}
	return 0;
}

输出一堆-1

2024/10/2 11:41
加载中...