求大佬看看代码哪里错了

. 发表于 1年前 · 关联问题 【模板】静态双链表

# include <bits/stdc++.h> using namespace std; struct node { long long front; long long data; long long back; }; node lst[200010]; int cr; void l(long long a) { lst[cr].data=a; lst[cr].front=0; lst[cr].back=lst[0].back; long long n=lst[0].back; lst[n].front=cr; lst[0].back=cr; cr++; } void r(long long a) { lst[cr].data=a; lst[cr].back=1; lst[cr].front=lst[1].front; long long n=lst[1].front; lst[n].back=cr; lst[1].front=cr; cr++; } void d(long long a) { long long n=lst[a+1].front; long long n1=lst[a+1].back; lst[n].back=n1; lst[n1].front=n; } void il(long long a,long long b) { lst[cr].data=b; lst[cr].back=a+1; lst[cr].front=lst[a+1].front; long long n=lst[a+1].front; lst[a+1].front=cr; lst[n].back=cr; cr++; } void ir(long long a,long long b) { lst[cr].data=b; lst[cr].front=a+1; lst[cr].back=lst[a+1].back; long long n=lst[a+1].back; lst[a+1].back=cr; lst[n].front=cr; cr++; } int main() { ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); lst[0].back=1; lst[1].front=0; cr=2; int m; cin>>m; while(m--) { long long a,b; char ch[6]; cin>>ch; if(strcmp(ch,"L")==0) { cin>>a; l(a); } else if(strcmp(ch,"R")==0) { cin>>a; r(a); } else if(strcmp(ch,"D")==0) { cin>>a; d(a); } else if(strcmp(ch,"IL")==0) { cin>>a>>b; il(a,b); } else if(strcmp(ch,"IR")==0) { cin>>a>>b; ir(a,b); } } for(long long i=lst[0].back;i!=1;i=lst[i].back) { cout<<lst[i].data<<' '; } return 0; }

数据样例能过,但第一个数据点就错了,第一个数据点前面能看到的答案和我的输出都是一样的,不知道哪里错了。

lmx 发表于 1年前

不好意思,数据构造出现了点问题,影响大佬的ac体验了

lmx 发表于 1年前

现已修改,可以重新提交