社区讨论
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 条回复,欢迎继续交流。
正在加载回复...