码迷,mamicode.com
首页 > 其他好文 > 详细

百度之星-1002-list应用

时间:2018-08-12 15:46:30      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:div   back   tor   iter   简洁   return   代码   end   int   

  用stl的list即可,注意。。。代码的简洁性(被debug伤痛)注意合并时可以手动pop,或者用splice进行合并,不能用merge!!!merge合并是自带排序!!!

#include<bits/stdc++.h>
#include<deque>
using namespace std;
inline int read(){
    char c=getchar();int x=0,f=1;
    while(c<0||c>9){if(c==-)f=-1;c=getchar();}
    while(c>=0&&c<=9){x=x*10+c-0;c=getchar();}
    return x*f;
}
std::list<int>::iterator it;
int main()
{
    int n,q,cmd;
    int u,w,val,s,v;
    int ans;
    while(~scanf("%d%d",&n,&q))
    {
        list<int>que[150005];
        while(q--)
        {
            cmd=read();
            if(cmd==1)
            {
                u=read();w=read();val=read();
                if (w)
                {
                    que[u].push_back(val);
                }
                else
                {
                    que[u].push_front(val);
                }
            }
            else if (cmd==2)
            {
                u=read();
                w=read();
                if (w)
                {
                    if (que[u].empty())
                    {
                        printf("-1\n");
                        continue;
                    }

                        ans=que[u].back();
                        printf("%d\n",ans);
                        que[u].pop_back();
                }
                else
                {
                    if (que[u].empty())
                    {
                        printf("-1\n");
                        continue;
                    }
                        ans=que[u].front();
                        printf("%d\n",ans);
                        que[u].pop_front();
                }
            }
            else {
                u=read();
                v=read();
                w=read();
                int temp;
                if (w==0){
                     it=que[u].end();
                     que[u].splice(it,que[u]);
                }else {
                     it=que[u].end();
                     que[v].reverse();
                     que[u].splice(it,que[v]);
                }
            }
        }
    }
    return 0;
}

 

百度之星-1002-list应用

标签:div   back   tor   iter   简洁   return   代码   end   int   

原文地址:https://www.cnblogs.com/bluefly-hrbust/p/9462857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!