#include <bits/stdc++.h>
using namespace std;
const int N = 1e9;
int vis[111111];
struct node
{
int adress;
int key;
int next;
int num;
} p[111111];
bool cmp(node a, node b)
{
return a.num < b.num;
}
int main()
{
int head, n;
cin >> head >> n;
int k1 = 0, k2 = 0;
for (int i = 0; i < 111111; i++)
{
p[i].num = N;
}
for (int i = 0; i < n; i++)
{
int a;
cin >> a;
cin >> p[a].key >> p[a].next;
p[a].adress = a;
}
for (int i = head; i != -1; i = p[i].next)
{
if (!vis[abs(p[i].key)])
{
vis[abs(p[i].key)] = 1;
p[i].num = k1;
k1++;
}
else
{
p[i].num = 111111 + k2;
k2++;
}
}
sort(p, p + 111111, cmp);
int k = k1 + k2;
for (int i = 0; i < k; i++)
{
if (i != k - 1 && i != k1 - 1)
{
printf("%05d %d %05d\n", p[i].adress, p[i].key, p[i + 1].adress);
}
else
{
printf("%05d %d -1\n", p[i].adress, p[i].key);
}
}
}
L2-002 链表去重 (25 分)
最新推荐文章于 2024-03-08 17:07:13 发布