Files
PAT/PATBasic/1075.c
2022-01-08 03:01:51 +08:00

35 lines
757 B
C

#include <stdio.h>
int main()
{
int data[100000] = {0}, next[100000] = {0},
firstaddr, addr, lastaddr = -1, N, K;
/* Read */
scanf("%d %d %d", &firstaddr, &N, &K);
for (int i = 0; i < N; i++) {
scanf("%d", &addr);
scanf("%d %d", data + addr, next + addr);
}
/* Scan three times */
for (int i = 0; i < 3; i++) {
/* Scan along the linked list */
for (addr = firstaddr; addr != -1; addr = next[addr]) {
/* If the number fits the condition */
if ((i == 0 && data[addr] < 0)
|| (i == 1 && 0 <= data[addr] && data[addr] <= K)
|| (i == 2 && data[addr] > K))
{
/* Print */
if (lastaddr != -1) printf(" %05d\n", addr);
printf("%05d %d", addr, data[addr]);
lastaddr = addr;
}
}
}
printf(" -1");
return 0;
}