社区讨论

RE球跳

B3656【模板】双端队列 1参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mi1vb096
此快照首次捕获于
2025/11/16 23:25
3 个月前
此快照最后确认于
2025/11/18 10:32
3 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n,x,y;
string op;
struct miller_queue//t...h
{
    int a[2000005],t=1000001,h=1000000;
    void push_back(int x){a[--t]=x;}
    void pop_back(){t++;}
    void push_front(int x){a[++h]=x;}
    void pop_front(){h--;}
    int size(){return t-h+1;}
    int front(){return a[h];}
    int back(){return a[t];}
    bool empty(){return t-h+1>0?true:not true;}
}q[1000005];
int main()
{
    cin>>n;
    while(n--)
    {
        cout<<"----------------\n";
        cin>>op>>x;
        if(op=="push_back")scanf("%d",&y),q[x].push_back(y);
        else if(op=="pop_back"&&q[x].empty())q[x].pop_back();
        else if(op=="push_front")q[x].push_front(y);
        else if(op=="pop_front"&&q[x].empty())q[x].pop_front();
        else if(op=="size")cout<<q[x].size()<<"\n";
        else if(op=="front"&&q[x].empty())cout<<q[x].front()<<"\n";
        else if(q[x].empty())cout<<q[x].back()<<"\n";
    }
    return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...