五个测试点全部报错,“too short on line 1”。是输出的格式有问题吗?还是哪里的问题
#include <stdio.h>
struct node{
int data;
int put;
int next;
int pre;
};
struct node sum[100001];
int head=0;
void creat (int x);
void insert_l (int x,int p);
void insert_r (int x,int p);
void dele (int p);
void print ();
int main()
{
int n=0;
int i=0;
int pos=0;
int num=2;
int side=0;
creat(1);
scanf("%d",&n);
for(i=0;i<n-1;i++){
scanf("%d %d",&pos,&side);
if(side==0){
insert_l(num,pos);
}else{
insert_r(num,pos);
}
num++;
}
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&pos);
dele(pos);
}
print();
return 0;
}
void creat (int x)
{
sum[x].data=x;
sum[x].next=0;
sum[x].put=0;
sum[x].pre=0;
head=sum[x].data;
}
void insert_l (int x,int p)
{
int t=0;
sum[x].data=x;
sum[x].put=0;
sum[x].next=0;
sum[x].pre=0;
if(p==head) {
sum[x].next=sum[p].data;
sum[p].pre=sum[x].data;
head=sum[x].data;
return;
}
t=sum[p].pre;
sum[t].next=sum[x].data;
sum[x].pre=t;
sum[p].pre=sum[x].data;
sum[x].next=sum[p].data;
}
void insert_r (int x,int p)
{
int t=0;
sum[x].data=x;
sum[x].put=0;
sum[x].next=0;
sum[x].pre=0;
if(sum[p].next==0) {
sum[x].pre=sum[p].data;
sum[p].next=sum[x].data;
return;
}
t=sum[p].next;
sum[t].pre=sum[x].data;
sum[x].next=t;
sum[p].next=sum[x].data;
sum[x].pre=sum[p].data;
}
void dele (int p){
sum[p].put=1;
}
void print ()
{
int t=head;
while(t!=0&&sum[t].put==0){
printf("%d ",sum[t].data);
t=sum[t].next;
}
}