1097. Deduplication on a Linked List (25)

    xiaoxiao2025-09-11  534

    #include<cstdio> #include<iostream> #include<vector> #include<string> #include<cmath> using namespace std; struct node { int date; int next; }nodes[100001]; int f[100001]; int main() { int s,n; cin>>s>>n; int a,date,b; for(int i=0;i<n;i++) { cin>>a>>date>>b; nodes[a].date=date; nodes[a].next=b; } vector <int> res,del; int h=s; while(h!=-1) { if(f[abs(nodes[h].date)]==0) res.push_back(h); else del.push_back(h); f[abs(nodes[h].date)]=1; h=nodes[h].next; } //cout<<res.size()<<' '<<del.size()<<endl; for(int i=0;i<res.size();i++) { if(i!=res.size()-1) { printf("%05d %d %05d",res[i],nodes[res[i]].date,res[i+1]); } else { printf("%05d %d -1",res[i],nodes[res[i]].date); } cout<<endl; } for(int i=0;i<del.size();i++) { if(i!=del.size()-1) { printf("%05d %d %05d",del[i],nodes[del[i]].date,del[i+1]); } else { printf("%05d %d -1",del[i],nodes[del[i]].date); } cout<<endl; } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-1302525.html
    最新回复(0)