02-1

来源:互联网 发布:网络远程教育有学位吗 编辑:程序博客网 时间:2024/05/18 00:29
/*
  title:
  问题分类:
  1.有多个-1
  2.只有一个节点
  3.翻转全部节点,最后改-1
  对于1始终不过,5ab10010是段错误

*/

http://www.patest.cn/contests/mooc-ds/02-1

#include<stdio.h>
struct t{
    int add;
    int data;
    int next;
}a[100010],b[100010];
int find(int add,t a[],int len){
    for(int i=0;i<len;i++){
        if(add==a[i].add){
            return i;
        }
    }
}
int main(){
    //freopen("in.txt","r",stdin);
    int fir,len,res;
    while(scanf("%d %d %d",&fir,&len,&res)!=EOF){
        for(int i=0;i<len;i++){
            scanf("%d %d %d",&a[i].add,&a[i].data,&a[i].next);
        }
        //2.只有一个节点
        if(len==1){
            printf("%05d %d %d\n",a[0].add,a[0].data,-1);
            continue;
        }
          //struct t b[len];
          int k=find(fir,a,len);
          b[0].add=a[k].add;
          b[0].data=a[k].data;
          b[0].next=a[k].next;
          for(int i=1;;i++){
              k=find(b[i-1].next,a,len);
              b[i].add=a[k].add;
              b[i].data=a[k].data;
              b[i].next=a[k].next;
              //1.有多个-1
              if(b[i].next==-1){
                  len=i;
                  break;
              }
          
          }
          
          for(int i=res-1;i>=0;i--){
              if(i!=0){
                  b[i].next=b[i-1].add;
              }else{
                  b[i].next=b[res].add;
              }
              
              
          }
          
          for(int i=res-1;i>=0;i--){
              //3.翻转全部节点,最后改-1
              if(i==0&&res==(len+1)){
                  printf("%05d %d %d\n",b[i].add,b[i].data,-1);
              }else{
                  printf("%05d %d %05d\n",b[i].add,b[i].data,b[i].next);
              }
          }
          for(int i=res;i<=len;i++){
              if(b[i].next!=-1){
                  printf("%05d %d %05d\n",b[i].add,b[i].data,b[i].next);
              }else{
                  printf("%05d %d %d\n",b[i].add,b[i].data,-1);
              }
              
          }
          
          
        
    
    }
    return 0;
}
0 0
原创粉丝点击