蓝色多瑙河 @ 2023-08-17 16:55:04
一组数据没过 九组数据显示读入了0 求解为什么会错
#include<bits/stdc++.h>
using namespace std;
int n,k;
struct lb
{
int zhi,xia,up;
}e[100005];
int main()
{
cin>>n>>k;
for(int i=1;i<=n;i++)
{
//是否需要判断末尾?
e[i].zhi=i;e[i].xia=i+1;e[i].up=i-1;
}
e[0].zhi=0;e[0].xia=1;e[n].xia=0;
for(int i=1;i<=k;i++)
{
int aa,bb,cc,A=0,B=0,C=0;
cin>>aa>>bb>>cc;
for(int j=0;j<aa;j++)
{
A=e[A].xia;
}
for(int j=0;j<bb;j++)
{
B=e[B].xia;
}
for(int j=0;j<cc;j++)
{
C=e[C].xia;
}
e[e[A].up].xia=e[B].xia;
e[e[B].xia].up=e[A].up;
e[B].xia=e[C].xia;
e[e[C].xia].up=B;
e[C].xia=A;
e[A].up=C;
}
int zz=0;
for(int i=1;i<=10;i++)
{
zz=e[zz].xia;
cout<<e[zz].zhi<<endl;
}
return 0;
}
by 某个新手 @ 2023-08-17 17:27:50
C表示被剪切下来的文本待插入处的前一行
所以
e[e[A].up].xia=e[B].xia;
e[e[B].xia].up=e[A].up;
要在
for(int j=0;j<cc;j++)
{
C=e[C].xia;
}
之前