#include <iostream>
#include <vector>
#include <unordered_set>
#include <cmath>
using namespace std;
struct node {
int address;
int data;
int next;
} list[100010];
vector<node> ans1;
vector<node> ans2;
unordered_set<int> nums;
int main() {
int head, n;
scanf("%d%d", &head, &n);
for (int i = 0; i < n; i++) {
int address;
scanf("%d", &address);
list[address].address = address;
scanf("%d%d", &list[address].data, &list[address].next);
}
int p = head;
while (p != -1) {
if (nums.find(abs(list[p].data)) != nums.end()) {
ans2.push_back(list[p]);
} else {
ans1.push_back(list[p]);
nums.insert(abs(list[p].data));
}
p = list[p].next;
}
for (int i = 0; i < ans1.size(); i++) {
if (i == ans1.size() - 1) {
printf("%05d %d -1\n", ans1[i].address, ans1[i].data);
} else {
printf("%05d %d %05d\n", ans1[i].address, ans1[i].data, ans1[i+1].address);
}
}
for (int i = 0; i < ans2.size(); i++) {
if (i == ans2.size() - 1) {
printf("%05d %d -1\n", ans2[i].address, ans2[i].data);
} else {
printf("%05d %d %05d\n", ans2[i].address, ans2[i].data, ans2[i+1].address);
}
}
return 0;
}
PAT 甲级 1097题 题解
最新推荐文章于 2024-09-28 09:18:19 发布