p7921 换行不会
  • 板块灌水区
  • 楼主IF_PL
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/7/18 00:38
  • 上次更新2024/7/18 09:03:55
查看原帖
p7921 换行不会
1384042
IF_PL楼主2024/7/18 00:38
#include<cstdio>
#include<iostream>
#include<queue>
#include<list>
using namespace std;
struct node{
	int r,l,date;
};                       //链表
node a[1000000];
int i=1;
main()
{a[1].l=0;
a[1].r=0;
a[0].l=1;
a[0].r=1;             //初始化
 int n;
cin>>n;
for(int i=2;i<=n;i++){
	a[i].l=i-1;
	a[i-1].r=i;
	
}
a[0].l=n;
a[n].r=0;
for(int i=1;i<=n;i++){
	cin>>a[i].date;
}
int head=a[0].r,tail=a[0].r;

while(a[0].l!=0){  
while(a[head].date==a[tail].date&&a[head].r!=0){
	head=a[head].r;
  }
  cout<<tail<<" ";
  a[a[tail].l].r=a[tail].r;
  a[a[tail].r].l=a[tail].l;  //删除
    tail=head;  
  if(a[head].r==0)//判断结尾
  {
  	cout<<endl;
  	 i++;
	head=a[0].r,tail=a[0].r;
	};
}
 return 0;
}

当最后一个数据例如

12

1 1 0 0 1 1 1 0 1 1 0 0

会出现 1 0

      11 12
 的情况

运行时会跳过12号,原因为会先执行if(a[head].r==0) 暂无法解决,求帮助!!

2024/7/18 00:38
加载中...