zoukankan      html  css  js  c++  java
  • PAT (Advanced Level) 1097. Deduplication on a Linked List (25)

    简单题。

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<vector>
    #include<map>
    #include<queue>
    #include<stack>
    #include<algorithm>
    using namespace std;
    
    const int maxn=100000+10;
    int root,n;
    struct Node
    {
        int id,val,nx;
    }tmp[maxn],s[maxn];
    
    int in[maxn];
    int flag[maxn];
    int idx[maxn];
    int tot=0;
    vector<int>g[maxn];
    
    int main()
    {
        memset(in,0,sizeof in);
        memset(flag,0,sizeof flag);
        scanf("%d%d",&root,&n);
        for(int i=1;i<=n;i++){
            scanf("%d%d%d",&tmp[i].id,&tmp[i].val,&tmp[i].nx);
            in[tmp[i].id]=i;
        }
    
        int p=root,sz=0;
        while(1)
        {
            if(p==-1) break;
            s[sz++]=tmp[in[p]];
            p=tmp[in[p]].nx;
        }
    
        for(int i=0;i<sz;i++)
        {
            if(flag[abs(s[i].val)]==0) g[0].push_back(i);
            else g[1].push_back(i);
            flag[abs(s[i].val)]++;
        }
    
        for(int i=0;i<=1;i++)
        {
            for(int j=0;j<g[i].size();j++)
            {
                if(j==g[i].size()-1)
                    printf("%05d %d %d
    ",s[g[i][j]].id,s[g[i][j]].val,-1);
                else
                    printf("%05d %d %05d
    ",s[g[i][j]].id,s[g[i][j]].val,s[g[i][j+1]].id);
            }
        }
        return 0;
    }
  • 相关阅读:
    VC CComboBox用法总结
    WideCharToMultiByte和MultiByteToWideChar函数的用法
    JavaScript
    标题:外星日历
    C语言顺序栈
    C语言循环队列
    每日一题
    标题:李白打酒
    标题:分数
    标题:复数幂
  • 原文地址:https://www.cnblogs.com/zufezzt/p/5641951.html
Copyright © 2011-2022 走看看