1133. Splitting A Linked List (25)

来源:互联网 发布:linux 新建用户 权限 编辑:程序博客网 时间:2024/06/06 12:55

//最后一个测试点错误,不知道错哪里?????????????

#include<cstdio>#include<algorithm>using namespace std;const int maxn=100010;struct Node{    int cla,cla1;    int data;    int add,next;}node[maxn],ans[maxn];bool cmp(Node a,Node b){    if(a.cla!=b.cla) return a.cla<b.cla;    else return a.cla1<b.cla1;}int main(){    int head,n,k;    scanf("%d%d%d",&head,&n,&k);    for(int i=0;i<n;i++){        int add,data,next;        scanf("%d%d%d",&add,&data,&next);        node[add].data=data;        node[add].add=add;        node[add].next=next;        if(data<0) node[add].cla=1;        else if(data>=0&&data<=k) node[add].cla=2;        else node[add].cla=3;           }//  printf("-----------------\n");    int cnt=0;    while(head!=-1){        ans[cnt]=node[head];        ans[cnt].cla1=cnt++;        head=node[head].next;    }    sort(ans,ans+cnt,cmp);    for(int i=0;i<cnt;i++){        printf("%05d %d ",ans[i].add,ans[i].data);        if(i<cnt-1) printf("%05d\n",ans[i+1].add);        else printf("-1\n");    }    return 0;}
原创粉丝点击