pata1097
来源:互联网 发布:手办 熊孩子 知乎 编辑:程序博客网 时间:2024/06/01 20:57
第三个测试点提示段错误,求大佬给改进
#include<iostream>#include<vector>#include<cstdio>#include<cmath>using namespace std;const int maxn=100010;struct node{int add,data,next;bool flag;}_node[maxn];int main(){#ifdef ONLINE_JUDGE#elsefreopen("in.txt","r",stdin);freopen("out.txt","w",stdout);#endiffor(int i=0;i<maxn;i++){_node[i].flag=false;}int begin,n;cin>>begin>>n;for(int i=0;i<n;i++){int _add,_data,_next;cin>>_add>>_data>>_next;_node[_add].add=_add;_node[_add].data=_data;_node[_add].next=_next;}int p=begin;int count=0;int temp[maxn]={};while(p!=-1){if(temp[(int)fabs(_node[p].data)]<1){_node[p].flag=true;temp[(int)fabs(_node[p].data)]++;}p=_node[p].next;}vector<node> vn,vnn;int pp=begin;while(pp!=-1){if(_node[pp].flag){vn.push_back(_node[pp]);}else{vnn.push_back(_node[pp]);}pp=_node[pp].next;}for(int i=0;i<vn.size()-1;i++){vn[i].next=vn[i+1].add;printf("%05d %d %05d\n",vn[i].add,vn[i].data,vn[i].next);}vn[vn.size()-1].next=-1;printf("%05d %d -1\n",vn[vn.size()-1].add,vn[vn.size()-1].data);for(int i=0;i<vnn.size()-1;i++){vnn[i].next=vnn[i+1].add;printf("%05d %d %05d\n",vnn[i].add,vnn[i].data,vnn[i].next);}vnn[vnn.size()-1].next=-1;printf("%05d %d -1\n",vnn[vnn.size()-1].add,vnn[vnn.size()-1].data);return 0;}