开局一把WA,AC全靠carry. 看了大神的提示才知道还有无效结点QAQ,不过也就一个测试点有。。发个博客记录一下,姥姥这么厉害的测试数据都能想到也是很佩服,开拓眼界开拓眼界。
代码:
#include<bits/stdc++.h>
using namespace std;
struct Node{
int next;
int data;
}node[101000],node2[101000];//node记录正向链表,node2记录反向链表
int main(){
int start,n;
cin>>start>>n;
int first;
for(int i = 0; i<n; i++){
int id1,d,ne;
cin>>id1>>d>>ne;
node[id1].data = d;
node[id1].next = ne;
if(ne != -1){
node2[ne].next = id1;
node2[ne].data = d;
}
else first = id1;
}
int cnt = 0;
int p = start;
while(p != -1){
cnt++;
first = p;
p = node[p].next;
}
n = cnt;
bool flag = false;
if(n % 2 == 0) flag = true;
n /= 2;
while(n--){
printf("%05d %d %05d\n", first, node[first].data, start);
if(flag && n == 0)
printf("%05d %d -1\n", start, node[start].data);
else printf("%05d %d %05d\n", start, node[start].data, node2[first].next);
first = node2[first].next;
start = node[start].next;
}
if(!flag)
printf("%05d %d -1\n", start, node[start].data);
return 0;
}