1052. Linked List Sorting (25)

来源:互联网 发布:d3.js 难 编辑:程序博客网 时间:2024/06/05 02:20

题目:https://www.patest.cn/contests/pat-a-practise/1052

#include<cstdio>#include<algorithm>using namespace std;#define maxn 100010struct Node{  int address,next;  int data;  int flag;  Node()  {    address = 0;    next = -1;    data = 100010;    flag = 0;  }}node[maxn];bool cmp(Node a, Node b){  if(a.flag == 0 || b.flag == 0) return a.flag>b.flag;  else return a.data<b.data;}int main(){  int N,head,p=0,i=0;  int address,data,next,count=0;  scanf("%d%d",&N,&head);  for(int i=0; i<N; i++)  {    scanf("%d%d%d",&address,&data,&next);    node[address].address =address ;    node[address].data = data;    node[address].next = next;  }  p = head;  while (p != -1)  {    node[p].flag = 1;    p = node[p].next;    count++;  }  if(count == 0)  {    printf("0 -1\n");  }  else  {    sort(node,node+maxn,cmp);    printf("%d %05d\n",count,node[0].address);    for(i=0; i<count; i++)    {            if(i == count-1)        printf("%05d %d -1\n",node[i].address,node[i].data);      else        printf("%05d %d %05d\n",node[i].address,node[i].data,node[i+1].address);    }      }  return 0;}


0 0
原创粉丝点击